Здравствуйте.
Нужна маленькая помощь...
Задание:
Если среднее арифметическое матрицы А положительно, задать элементам С1, С2,...,С[i] значения тех элементов матрицы А, которое больше среднего арифметического этой матрицы.
Вот я написал код:
PHP код:
Program MatrToMass;
Const n=3;
Var
j,i:integer;
A:array[1..n] of array[1..n] of real;
S,K:real;
C:array[1..n*n] of real;
Begin
S:=0;
for i:=1 to n do
for j:=1 to n do
Begin
Write('A[',i,',',j,']=');
Readln(A[i,j]);
S:=S+A[i,j];
end;
K:=S/sqr(N);
if K>0 then
Begin
for i:=1 to n do
for j:=1 to n do
Begin
if A[i,j]>k then C[i]:=A[i,j];
end;
Writeln('Среднее арифметическое матрицы А = ',K:0:1);
Write('Полученный массив C = ');
for i:=1 to n*n do
Begin
if C[i]<>0 then
Write(C[i],' ');
end;
end;
END.
Если например ввести матрицу А:
|4 6 20|
|1 5 0|
|30 6 1|
То все вроде верно, выдаёт
Среднее арифметическое матрицы А = 8.1
Полученный массив C = 20 30
Но если например ввести матрицу А:
|25 24 25|
|25 25 25|
|25 25 25|
То по должно выдать
С= 25 25 25 25 25 25 25 25 (8 раз)
Но выдаёт
Среднее арифметическое матрицы А = 24.9
Полученный массив
C = 25 25 25 (3 раза)
На самом деле я не уверен что это верно, т.к. вывожу я не совсем массив, как сказано в задании...
Но если написать так:
PHP код:
Program g_2_5_3_6;
Const n=3;
Var
j,i:integer;
A:array[1..n,1..n] of real;
S,K:real;
C:array[1..n*n] of real;
Begin
S:=0;
for i:=1 to n do
for j:=1 to n do
Begin
Write('a[',i,',',j,']=');
readln(A[i,j]);
S:=S+A[i,j];
end;
K:=S/sqr(n);
for i:=1 to n do
for j:=1 to n do
Begin
if A[i,j]>K then C[i]:=A[i,j];
write(C[i], ' ');
end;
END.
То вообще не понятно чего выводит
Прошу вас помочь мне разобраться с этой проблемой.