Консультация № 131083
07.04.2008, 21:16
0.00 руб.
0 1 1
Здравствуйте у меня пробелма с программой "Обработка матрицы(поиск максим суммы по строкам и столбцам)"никак не могу правильно составить агоритм.Помогите пожалуйста

Обсуждение

Неизвестный
08.04.2008, 08:49
общий
это ответ
Здравствуйте, Magmatoid!
Используйте мотод summ класса
В зависимости от параметра сумма считается по строкам или столбцам,номер строки/столбца с наибольшей суммой заносится в переменную num

Приложение:
#include <windows.h>#include <stdio.h>int num;class Matrix{ int **matr; unsigned int x,y;public: Matrix(int **matrix_,int x_,int y_) { int i; x=x_; y=y_; matr=new int*[x_]; for(i=0;i<x_;i++) matr[i]=new int[y_]; for(i=0;i<x_;i++) for(int j=0;j<y_;j++) matr[i][j]=matrix_[i][j]; } Matrix(int x_,int y_) { int i; x=x_; y=y_; matr=new int*[x_]; for(i=0;i<x_;i++) matr[i]=new int[y_]; for(i=0;i<x_;i++) for(int j=0;j<y_;j++) matr[i][j]=0; } int summ(bool raw_c) { int sum=0,buffer; int i,j; if(raw_c) { for(i=0;i<x;i++) { buffer=0; for(j=0;j<y;j++) buffer+=matr[i][j]; if(sum<buffer) { sum=buffer; num=i; } } } else { for(j=0;j<y;j++) { buffer=0; for(i=0;i<x;i++) buffer+=matr[i][j]; if(sum<buffer) { sum=buffer; num=j; } } } return sum; } ~Matrix() { delete[] matr; }};int main(int argc, char* argv[]){int r=5,c=3;int i,j;int **mas=new int*[r];for(int i=0;i<r;i++) mas[i]=new int[c];for(i=0;i<r;i++) for(j=0;j<c;j++) mas[i][j]=rand();Matrix A(mas,r,c);printf("%d\n",A.summ(1));printf("%d",num);system("pause"); return 0;}
Форма ответа