Cum se determină dacă matricea - pătrat magică

Întrebat universitatea pentru a scrie un program în C ++ care determină dacă introducerea matricei pătratului magică. Asta e sarcina:

Declararea unei matrice de int dimensiune 3 tip 3. Introduceți consola valoarea sa. Verificați dacă matricea „pătrat magic“ (în sum „pătrat magic“ a elementelor în verticale, orizontale și diagonale egale).

Puteți ajuta cu decizia. Mulțumesc.

Efectuarea munca ta mult. Puteți găsi suma elementelor din fiecare rând, coloană și kakzhdogo diagonală (partea principală și) și pentru a compara fiecare sumă. Dar este o metodă destul de lung. Mai ușor pentru a rezolva după cum urmează.

1. Se calculează așa-numitele „numere magice“. Se calculează cu formula: n * (n ^ 2 + 1) / 2, unde n - este dimensiunea unei matrice pătratică.
2. Ori toate elementele unei matrice pătratică și împărțit în n și anume dimensionalitatii
3. Comparați rezultatul cu „numere magice“.

În C ++ în punerea în aplicare de aplicare a consolei va fi după cum urmează:

#include "stdafx.h"
#include
#include
#include // Biblioteca pentru a permite susținerea limbii române în consola
using namespace std;

const int n = 3; // dimensiunea unei matrice pătratică
setlocale (LC_ALL, "rus"); // includ suport pentru limba română


pentru (int i = 0; i pentru (int j = 0; j std :: cout <<" Введите элемент матрицы " < std :: cin >> a [i] [j];


int M = (n * (n * n + 1)) / 2; // constanta magie

// dacă vom împărți întreaga cantitate de elemente în dimensiunea pătrat obținem numărul este suma diagonalelor suma / n
// dacă numărul rezultat al diviziunii va fi constantă, înseamnă că matricea magică
în cazul în care (M == (suma / n)) printf ( "Matrix Magic \ n");
>
altfel<
printf ( "The Matrix nu este magie \ n!");
>


std :: cout <<"Магическая константа М " < _getch (); // suspendă aplicația și apăsați orice buton
return 0;
>

Asta e tot o soluție.