Определить является ли заданная квадратная матрица порядка n магическим квадратом - C (СИ)
Формулировка задачи:
Определить является ли заданная квадратная матрица порядка n магическим квадратом, то есть такой, в которой суммы элементов во всех строках и столбцах одинаковы
Решение задачи: «Определить является ли заданная квадратная матрица порядка n магическим квадратом»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <iostream> int main() { int n; printf("Введите размер матрицы:\n"); std::cin>>n; int matrix[n][n]; int summ[n*2]; int g = 0; bool state = true; for(int i = 0; i<n;i++) { for (int j =0; j <n; j++) { printf("Введите значение элемента [%d,%d]:\n",i,j); std::cin>>matrix[i][j]; } } for (int i = 0;i<n;i++) { int temp=0; for(int j =0;j<n;j++) { temp+=matrix[i][j]; summ[g] = temp; } g++; temp=0; } for (int i = 0; i< n; i++) { int temp=0; for (int j=0; j<n;j++) { temp+=matrix[j][i]; summ[g] = temp; } g++; temp=0; } for (int i =0; i < n*2;i++) { if (i==(n*2)-1) { } else { if(summ[i]!=summ[i+1]) { state=false; break; } } } if(state) { printf("Матрица является магическим квадратом\n"); } else { printf("Матрица не является магическим квадратом\n"); } return 0; }
Объяснение кода листинга программы
- Объявляются переменные: n (размер матрицы), matrix[n][n] (квадратная матрица), summ[n*2] (сумма элементов матрицы), g (счетчик для заполнения суммы), state (флаг для определения является ли матрица магическим квадратом), temp (временная переменная).
- Пользователю предлагается ввести размер матрицы.
- В цикле заполняются элементы матрицы.
- В цикле заполняются суммы элементов матрицы по диагоналям.
- Проверяется условие для определения является ли матрица магическим квадратом.
- Выводится сообщение о результате проверки.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д