Программа проверяет, является ли введенная с клавиатуры квадратная матрица «магическим» квадратом. «Магическим» квадратом называется матрица, у которой сумма чисел в каждом горизонтальном ряду, в каждом вертикальном и по каждой из диагоналей одна и та же.
Решение:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#include «stdafx.h»
#include <iostream> using namespace std; void main() {setlocale(LC_ALL,«Rus»); const int n=3, k=3; int i=0, j=0, mas[n][k], x=—1, str=0, stb=0, g_d=0, p_d=0; for (i=0; i<n; i++) //ввод массива { for (j=0; j<k; j++) cin>>mas[i][j]; g_d+=mas[i][i]; } for (i=n—1; i>=0; i—) { x++; p_d+=mas[x][i]; } x=n; for (i=0; i<n; i++) { for (j=0; j<k; j++) { str+=mas[i][j]; stb+=mas[j][i]; } if ((str==stb)&&(stb==g_d)&&(g_d==p_d)) x=x—1; str=0; stb=0; } if (x==0) cout<<» Матрица \»магическая\» «; else cout<<» Матрица не является \»магической\» «; system(«pause>>void»); } |