1. Max - это системная функция/ Не стоит называть таким именем свою.
2. Последнее условие в процедуре не совсем понятно. И для нахождения максимального значения оптимальнее это делать в одном цикле. В PascalABC так вообще можно написать m:=a.max; и ВСЁ. Но если хотите как на Pascal - Я исправил.
/*Дан массив X(N,M) .Найти среднее арифметическое тех строк массива, первый элемент которых положительный*/#include <iostream>#include <time.h>#define M 5#define N 5using namespace std; void printArray(int *mas, int n,int m)//инициализация и вывод массива { srand(time(0)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { *mas = rand() % 21-10; cout << *mas << "\t"; mas++; } cout << endl; }}
void srArray(int mas[][M], int n)//нахождение и подсчет тех строк, где первый элемент положительный{ int a; double sum = 0; for (int i = 0; i < n; i++) { double sr = 1; if (mas[i][0] > 0) { for (int j = 0; j < M; j++) { sum += mas[i][j]; } sr = sum / M; cout << "Ср элеменитов " << i + 1 << "-й строки = " << sr << endl; } else ; } }
void main()//основная функция{ setlocale(LC_ALL, "rus"); int x[N][M]; printArray(&x[0][0], N, M); cout << endl; cout << ""<<endl; srArray(x, N); system("pause");}
1. Max - это системная функция/ Не стоит называть таким именем свою.
2. Последнее условие в процедуре не совсем понятно. И для нахождения максимального значения оптимальнее это делать в одном цикле. В PascalABC так вообще можно написать m:=a.max; и ВСЁ. Но если хотите как на Pascal - Я исправил.
3. Функция ищет максимальное значение в массиве.
Pascal
var
maxa:integer;
procedure Getmax(c:integer; var m:integer);
var
i:integer;
a: array [1..100] of integer;
begin
for i:=1 to c do begin
a[i]:= random (20);
write(a[i],' ');
if m<a[i] then
m:=a[i];
end;
writeln;
end;
begin
Getmax(100,maxa);
writeln('Max=', maxa);
end.
void printArray(int *mas, int n,int m)//инициализация и вывод массива { srand(time(0)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { *mas = rand() % 21-10; cout << *mas << "\t"; mas++; } cout << endl; }}
void srArray(int mas[][M], int n)//нахождение и подсчет тех строк, где первый элемент положительный{ int a; double sum = 0; for (int i = 0; i < n; i++) { double sr = 1; if (mas[i][0] > 0) { for (int j = 0; j < M; j++) { sum += mas[i][j]; } sr = sum / M; cout << "Ср элеменитов " << i + 1 << "-й строки = " << sr << endl; } else ; }
}
void main()//основная функция{ setlocale(LC_ALL, "rus"); int x[N][M]; printArray(&x[0][0], N, M); cout << endl; cout << ""<<endl; srArray(x, N); system("pause");}