Funktion verbessern
-
Nehme einen Array mit 9 Werten zum Zählen. Die Werte 1-9 entsprenden den Indizes 0-8. Funktion wird ein "Dreizeiler".
-
Danke, ich wusste nicht, dass folgender Ausdruck erlaubt ist
DirkB schrieb:
In der Schleife kannst du dann zählen.
a[arr[i][j]-1]++;
aber warum das -1?
-
Danke, ich wusste nicht, dass folgender Ausdruck erlaubt ist
Warum sollte das nicht erlaubt sein?
aber warum das -1?
Du hast Zahlen von 1-9, das Array (bzw. der Index(?)) geht aber von 0 bis 8.
-
DirkB schrieb:
vorher solltest du prüfen, ob arr[i][j] im richtigen bereich ist.
Damit ist 1 bis 9 gemeint.
Sonst sprichst du den falschen Index im Array an.
Und das kommt nicht gut.
-
wizZarD schrieb:
aber warum das -1?
Damit 1-9 auf 0-8 abgebildet werden.
-
int p(int arr[3][3]) { int i, j, x = 0; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) x |= 1 << arr[i][j]; return (x == 0x03FE ? 1 : -1); } int main() { int arr[3][3] = { {1, 6, 4}, {2, 3, 8}, {9, 5, 7} }; printf("%i\n", p(arr)); arr[0][0] = 9; printf("%i\n", p(arr)); }
-
Schreib doch erstmal was du genau verbessern willst, wie die Aufgabenstellung lautet.
Was soll hier jetzt hier jemand sagen, wenn du einfach nur den Code hinklatschst
-
vayacontoz schrieb:
Schreib doch erstmal was du genau verbessern willst, wie die Aufgabenstellung lautet.
Was soll hier jetzt hier jemand sagen, wenn du einfach nur den Code hinklatschstSiehe Seite 1
Wunderte mich aber auch erst drüber.
-
vayacontoz schrieb:
Schreib doch erstmal wie die Aufgabenstellung lautet.
Auch wenn er es nicht explizit sagt möchte er wohl ein Sudoku Feld überprüfen.
-
sry. mein Fehler, hab nur die zweite Seite gesehen