Консультация № 131228
08.04.2008, 21:25
0.00 руб.
0 1 1
Здравствуйте у меня проблема с алгоритмом по обработке матрицы(поиск по максим сумме по столбцам и по сторкам) матрица должна заполнятся случайным образом.Помогите пожфлуйста написать правильно алгоритм, у меня он постояно возвращается во внутренний цикл дальше не идет.

Приложение:
#include <stdio.h>#include <iostream.h>#include <conio.h>#define m 5int main(int argc,char *argv[]){ int a;matrix int i,j;индексы массива randomize(); int sum; int summa;summa=0;for(i=0;i<4;i++){ for(j=0;j<4;j++) { a[i][j]=random(m); sum=summa+a[i][j]; sum=summa+a[j][i]; } if(sum>summa) { sum=summa; }

Обсуждение

Неизвестный
09.04.2008, 03:06
общий
это ответ
Здравствуйте, Smiti!

Ваша ошибка в том, что вы пытаетесь использовать для работы с генератором случайных чисел функции randomize и random (наверно взяты из паскаля). В C++ они называются srand и rand соответственно.
Ну и конечно int a; - это совсем не матрица, а просто переменная типа int. Матрица объявляется так:
int a[5][5]; //двумерный массив 5x5

В приложении вы можете найти исправленный код.

Приложение:
#include <time.h> //for time#include <stdlib.h> //for rand#include <stdio.h> //for printf//-----------------------------------------#define RANK 5#define RAND 100//-----------------------------------------typedef int MATRIX[RANK][RANK];//-----------------------------------------void ComputeSums(MATRIX matrix, int* row_sum,int* col_sum){ int i,j; int rsum,csum; *row_sum = INT_MIN; *col_sum = INT_MIN; for (i=0; i< RANK; ++i) { rsum = csum = 0; for (j=0; j< RANK; ++j) { rsum += matrix[i][j]; csum += matrix[j][i]; } *row_sum = rsum > *row_sum ? rsum: *row_sum; *col_sum = csum > *col_sum ? csum: *col_sum; }}//-----------------------------------------void PrintMatrix(MATRIX matrix){ int i,j; for (i=0; i< RANK; ++i) { for (j=0; j< RANK; ++j) printf("%6.d",matrix[i][j]); printf("\n"); }}//-----------------------------------------void InitMatrix(MATRIX matrix){ srand(time(0)); int i,j; for (i=0; i< RANK; ++i) for (j=0; j< RANK; ++j) { matrix[i][j] = rand()%RAND; }}//-----------------------------------------void main(){ MATRIX matrix; InitMatrix(matrix); int row_sum, col_sum; ComputeSums(matrix,&row_sum,&col_sum); PrintMatrix(matrix); printf("Max sum in a row = %d\n" "Max sum in a column = %d\n", row_sum,col_sum); system("pause");}
Форма ответа