005
25.05.2007, 13:29 Uhr
Th
|
Wie Windalf schon geschrieben hat, muß man die Dimensionen (in C) einzeln der Funktion übergeben, d.h.
C++: |
int check(int *array, int zeilen, int spalten) { int z, s, z2, s2, sum, sum2;
if(zeilen != spalten) // 1. check return 0;
// 2. check for(z=0; z<zeilen; z++) for(s=0; s<spalten; s++) for(z2 = z+1; z2<zeilen; z2++) for(s2 = s+1; s2<spalten; s2++) if(array[z][s] == array[z2][s2]) return 0; // Zahl doppelt
// 3. check sum = 0; for(z=0; z<zeilen; z++) sum += array[z][0];
// zeilen for(z=0; z<zeilen; z++) { sum2 = 0; for(s=0; s<spalten; s++) sum2 += array[z][s];
if(sum != sum2) return 0; }
// spalten for(s=0; s<spalten; s++) { sum2 = 0; for(z=0; z<zeilen; z++) sum2 += array[z][s];
if(sum != sum2) return 0; }
// diagonalen ...
return 1; }
|
Ich habe dies jetzt blind getippt, könnten also noch Fehler drin sein (evtl. habe ich auch C++ statt C verwendet -) Die Diagonalen habe ich jetzt noch als Aufgabe für dich übriggelassen (ist mir zu schwer...)
Besser ist es sogar, wenn du die drei Checks in eigene Funktionen packst (auch wenn es keine Hausaufgabe ist und du es nicht abgeben mußt -) |