Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Элементы матрицы четных строк разделить на максима


Автор: devl13 9.12.2013, 19:40
Задание: Выбрать максимальный элемент матрицы С (размер m*n), элементы четных строк разделить на максимальный элемент, а к элементам нечетных прибавить максимальный элемент.

Написал создание матрицы, и нахождение максимального элемента. Не знаю как написать разделение четных строк на максимальный элемент, а элементы нечетных прибавить максимальный элемент. Прошу помощи.

Код

#include<iostream.h>
#include<iomanip.h>
#include<locale.h>
 
int main()
{setlocale(LC_CTYPE,"Russian");
  int n,m,i,j,k;
   double t;
//Ввод размерности массива
   cout << "Введите размер массива n m" << endl;
    cin >> n >> m;
 
//Выделение памяти под массив
  double  **A;
  A=new double*[n];
    for(i=0; i<n; i++)
   A[i]=new double[m];
 
//Тут ввод массива
   for (i=0; i<n; i++)
     for (j=0; j<m; j++)
{
  cout << "Введите A[" << i << "][" << j << "]: " ;
   cin >> A[i][j];
  cout<<endl;
}
 for (i=0; i<n; i++)
{
 for (j=0; j<m; j++)
  cout << A[i][j] << " ";
  cout << endl;
}
 
  double max=0;
 
 for(int j=0;j<n;j++)
{
 for(int i =0;i<m;i++)
{
  if ( A[j][i]> max)
     max = A[j][i];
}
}
  cout << "max:" << max<< endl;
 
 for (int i = 0; i < n; i++)
{
    double max;
    for (int j = j+1 ; j < m; j++)
    {
      A[i][j]=A[i][j];
    }
    for (i=0; i<n; i++)
    {
    for (j=0; j<m; j++)
     cout << A[i][j] << " ";
     cout << endl;
    }
}
 
 
system("pause");
}

Автор: rudolfninja 9.12.2013, 20:01
Смотря что понимается под нечетной строкой: строка с нечетным индексом или строка с нечетным порядковым номером? В любом случае, проверяешь остаток от деление индекса строки на 2 и в зависимости от результата поэлементно делишь их на максимум или прибавляешь максимум.

Автор: devl13 9.12.2013, 20:07
Цитата(rudolfninja @  9.12.2013,  20:01 Найти цитируемый пост)
Смотря что понимается под нечетной строкой: строка с нечетным индексом или строка с нечетным порядковым номером? В любом случае, проверяешь остаток от деление индекса строки на 2 и в зависимости от результата поэлементно делишь их на максимум или прибавляешь максимум. 
 Можешь написать алгоритм деления индекса строки, а то я только обучаюсь данному приему. 

Автор: rudolfninja 9.12.2013, 20:37
Цитата(devl13 @  9.12.2013,  20:07 Найти цитируемый пост)
 Можешь написать алгоритм деления индекса строки,


i % 2 - остаток от деления на два. Если результат равен нулю - i - четное, иначе нечетное

Автор: devl13 9.12.2013, 20:44
Цитата(rudolfninja @  9.12.2013,  20:37 Найти цитируемый пост)
i % 2 - остаток от деления на два. Если результат равен нулю - i - четное, иначе нечетное 


Как то так? Исправь если я как то не так понял 
Код

if(i%2 == 0){
   for(i = 0; i < n; i++)
      arr[i][j] /= max;
   }

}

for(j = 0; j < n; j++){
if(i % 2 != 0){
    for(i = 0; i < n; i++)
      arr[i][j] += max;
  }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)