Du hast in z_sum und s_sum jeweils die Summe sämtlicher Felder. Die wichtigste Änderung wär also folgende:
// Zeilensumme
for ( i=0; i<N; i++)
{
for (j=0; j<N; j++)
{z_sum = z_sum + quadrat[j];}
}
// Spaltensumme
for ( j=0; j<N; j++)
{
for ( i=0; i<N; i++)
{s_sum[j] = s_sum[j] + quadrat[j];}
}
Damit auch bei variablem N alle Zeilen- und Spaltensummen verglichen werden, brauchst Du noch sowas wie die folgende Schleife:
for ( i= 0,; i<N; i++)
{
if (z_sum[0] == z_sum && z_sum[0] == s_sum)
{
k++;
}
}
if (z_sum[0] == d_sum && z_sum[0] == d_sum1 && k == N)
{return 1;}
else
{return 0;}
Ich garantiere aber nicht, daß alles syntaktisch richtig ist. Es ist schon ein paar Jahre her, daß ich das letzte Mal mit C++ gearbeitet habe.
Und nebenbei bemerkt, solltest Du dem Array mal genug Werte zuweisen. Sonst wird das nie was mit dem Magischen Quadrat.