Другие языки программирования и технологии

Помогите с программирование с++. является ли матрица магическим квадратом

#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
main()
{int dia, dia2,q, c,n,i,j; float a[15][15], b[15];
cout <<"vvedite razmernost matricy"<<"\n";
cin>>n;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
{cout<<"vvedite element"<<"a"<<i<<j<<"\n";>>a[j][j];}
b=0;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
{b=b+a[j];}
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
{b[n+i]=b[n+i]+a[j];}
{if (b==b[n+i]) c=b;}
dia=0;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
if (i==j) dia=dia+a[j];
dia2=0;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
if (i+j==n+1) dia2=dia2+a[j];
if (dia==dia2) q=dia ;

if (c=q)

cout<<"Magicheskii kvadrat";
else cout<<"ne magicheskii kvadrat";
getch();
return 0;} Не зависимо от того каккую мы матрицу вводим всегда выводит сообщение, ч то это магический квадрат
#include <iostream>
using namespace std;
int main() {
locale::global(locale(""));
int N;
cout << "Введите размерность матрицы: "; cin >> N;
int summa = 0;
int ** a = new int * [N];
for (int n = 0; n < N; n++) {
a[n] = new int [N];
for (int m = 0; m < N; m++) {
cout << "a[" << n << "][" << m << "] -> ";
cin >> a[n][m];
if (n == 0) summa += a[n][m];
}
} system("cls");
for (int n = 0; n < N; n++, cout << endl)
for (int m = 0; m < N; m++)
cout << a[n][m] << ' ';
int temp;
bool flag = true;
for (int n = 1; n < N; n++) {
temp = 0;
for (int m = 0; m < N; m++) temp += a[n][m];
if (temp != summa) {
flag = false;
break;
}
}
int main_diagonal = 0, collateral_diagonal = 0;
for (int n = 0; n < N; n++)
for (int m = 0; m < N; m++) {
if (n == m) main_diagonal += a[n][m];
if (n + m == N - 1) collateral_diagonal += a[n][m];
}
if (main_diagonal != summa || collateral_diagonal != summa) flag = false;
if (flag) cout << endl << " Квадрат магический";
else cout << endl << " Квадрат обыкновенный";
for (int n = 0; n < N; n++) delete[] a[n];
delete[] a;
cin.get(); cin.get();
return 0;
}
Grey Wolf
Grey Wolf
53 342
Лучший ответ