Var i,j,n:integer; m: array[1..10,1..10] of integer; flag:boolean; sum: array[0..1] of longint; begin readln(n); flag:=true; for i:=1 to n do begin for j:=1 to n do read(m[i,j]); readln; end; //Проверяем строки i:=1; for j:=1 to n do sum[i mod 2]:=sum[i mod 2]+m[i,j]; while ((i<n) and flag) do begin i:=i+1; for j:=1 to n do sum[i mod 2]:=sum[i mod 2]+m[i,j]; if sum[0]<>sum[1] then flag:=false; sum[(i+1) mod 2]:=0; end; //Проверяем столбцы sum[0]:=0; sum[1]:=0; j:=1; for i:=1 to n do sum[j mod 2]:=sum[j mod 2]+m[i,j]; while ((j<n) and flag) do begin j:=j+1; for i:=1 to n do sum[j mod 2]:=sum[j mod 2]+m[i,j]; if sum[0]<>sum[1] then flag:=false; sum[(j+1) mod 2]:=0; end; sum[0]:=0; sum[1]:=0; j:=1; for i:=1 to n do begin sum[0]:=sum[0]+m[i,j]; sum[1]:=sum[1]+m[n-i+1,j]; j:=j+1; end; if sum[0]<>sum[1] then flag:=false; if flag then writeln('Магический'); end.
Код программы:
#include <iostream>
using namespace std;
int main()
{
int *mas, n, sum, max, min;
bool f_max= false, f_min = false;
cout<<"Введите количество элементов в массиве"<<endl;
cin >> n;
mas = new int(n);
cout<<"Введите элементы"<<endl;
for (int i = 0; i < n; i++)
cin >> mas[i];
cout<<"Ваш массив: "<<endl;
for (int i = 0; i < n; i++)
cout << mas[i] <<' ';
max = min = mas[0];
for (int i = 0; i < n; i++){
if (mas[i] % 2 == 0){
if (max <= mas[i]){
max = mas[i];
f_max = true;
}
}
else{
if (min >= mas[i]){
min = mas[i];
f_min = true;
}
}
}
if (f_min == false)
min = 0;
if (f_max == false)
max = 0;
sum = max + min;
cout<<"\nСумма = "<< sum<<endl;
return 0;
}