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");}