Как да се определи дали матрицата - вълшебната площада

На въпрос на университета, за да напише програма на C ++, която определя дали въвеждането на матрицата на магия площада. Това е задачата:

Декларирам масив от данни вътр размер 3 тип 3. Въведете утеши своята стойност. Проверете дали матрицата "магически квадрат" (в "магически квадрат" сума от елементите във вертикално, хоризонтално и диагонал равен).

Вие можете да помогнете с решението. Благодаря.

Осъществяване вашата работа много. Можете да намерите сумата от елементи във всеки ред, колона и диагонал kakzhdogo (основна и странична) и да се сравни всяка сума. Но това е една продълговата метод. По-лесна за решаване, както следва.

1. Изчислете така наречените "магически числа". Тя се изчислява по формулата: п * (п ^ 2 + 1) / 2, където п - е измерение на квадратна матрица.
2. Fold всички елементи на квадратна матрица и се разделя на п т.е. размерност
3. Сравнете резултата с "магически числа".

В C ++ в изпълнението на конзолата молба ще бъде, както следва:

#include "stdafx.h"
#include
#include
#include // Библиотека да се даде възможност за подкрепа на българския език в конзолата
използване на пространството от имена STD;

конст Int п = 3; // измерение на квадратна матрица
setlocale (LC_ALL, "Руски"); // включва поддръжка на български език


за (INT I = 0; и за (Int J = 0; J STD :: Cout <<" Введите элемент матрицы " < STD :: CIN >> на [в] [к];


Int М = (п * (п * п + 1)) / 2; // магически постоянна

// ако разделим цялата сума на елементите в измерението на площада получаваме числото е сумата от диагоналите сума / п
// ако получената броя на разделянето ще бъде константа, това означава, че матрицата на магически
ако (М == (сума / п)) ФОРМАТ ( "магически матрица \ п");
>
още<
ФОРМАТ ( "Матрицата не е магия \ н!");
>


STD :: Cout <<"Магическая константа М " < _getch (); // спира приложението и натиснете някой от бутоните
връщане 0;
>

Това е всичко, разтвор.