const n=10; m=8;
var a:array[1..n,1..m] of integer;
b:array[1..n] of integer;
i, j: integer;
begin
writeln('Исходная матрица:');
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(20)-5;
write(a[i,j]:4);
end;
writeln;
j:=1;
while (j<=m)and(a[i,j]>0) do j:=j+1;
b[i]:=j-1;
writeln('Полученный массив:');
for i:=1 to n do write(b[i]:3);
end.
Пример:
Исходная матрица:
14 13 1 9 9 8 -5 10
13 -4 -2 7 1 5 10 -5
3 2 6 14 12 5 5 11
6 -2 8 3 3 -1 -4 8
9 0 -1 -3 2 6 12 8
-1 -2 0 3 4 -3 10 5
8 11 -3 2 12 1 8 7
13 7 13 11 8 -3 6 1
11 6 1 -1 14 7 -2 5
0 13 -3 4 14 2 2 3
Полученный массив:
6 1 8 1 1 0 2 5 3 0
#include <stdio.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int const n=3;
int mas[n][n];
int sum1, sum2;
bool magik;
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
{
printf("mas[%d][%d] = ", i+1, j+1);
scanf("%d",&mas[ i ][ j ]);
}
printf("\nВведенная матрица:\n");
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
printf("%d ",mas[ i ][ j ]);
}
printf("\n");
}
sum1=0;
sum2=0;
for (int i = 0; i<n; i++)
{
sum1 += mas[ i ][ i ];
sum2 += mas[ i ][ n-1-i ];
}
printf("Сумма главной диагонали = %d\n", sum1);
printf("Сумма побочной диагонали = %d\n", sum2);
magik = true;
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ i ][ j ];
}
} else { magik=false; break; }
}
if (magik==true)
{
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ j ][ i ];
}
}
else { magik=false; break; }
}
}
if (magik==true)
printf("\nМатрица является магическим квадратом\n");
else
printf("\nМатрица не является магическим квадратом\n");
system("pause");
return 0;
}
const n=10; m=8;
var a:array[1..n,1..m] of integer;
b:array[1..n] of integer;
i, j: integer;
begin
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(20)-5;
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to n do
begin
j:=1;
while (j<=m)and(a[i,j]>0) do j:=j+1;
b[i]:=j-1;
end;
writeln('Полученный массив:');
for i:=1 to n do write(b[i]:3);
writeln;
end.
Пример:
Исходная матрица:
14 13 1 9 9 8 -5 10
13 -4 -2 7 1 5 10 -5
3 2 6 14 12 5 5 11
6 -2 8 3 3 -1 -4 8
9 0 -1 -3 2 6 12 8
-1 -2 0 3 4 -3 10 5
8 11 -3 2 12 1 8 7
13 7 13 11 8 -3 6 1
11 6 1 -1 14 7 -2 5
0 13 -3 4 14 2 2 3
Полученный массив:
6 1 8 1 1 0 2 5 3 0