ich habe da ein kleines Problem beim Programmieren mit C und komme schon seit Tagen nicht mehr wirklich voran.
Ich muss ein Schachbrett programmieren, welches abwechselnd „0“ für schwarz und „1“ für weiß anzeigt. Das sollte folgendermaßen aussehen:
Nun habe ich es geschafft, das Grundgerüst mit Nullen aufzubauen, jedoch fehlt mir das Wissen, um die Einsen abwechselnd reinzubekommen.
Der Quellcode sieht zur Zeit so aus:
#include <stdio.h>
int main(void)
{
int brett[8][8] = { 0 };
int i, j;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
printf("| %d ", brett[i][j]);
}
printf("|\n");
}
printf("\n\n");
return 0;
}
Über einen guten Ratschlag wäre ich sehr glücklich!
Danke
den Wert könnte ich direkt ansprechen, indem ich sofort nach der Initialisierung auf 0
brett[1][1] = 1;
einfüge, aber das wäre ja eine „manuelle“ Zuweisung.
Meinst du, ich sollte nach der Initialisierung auf Null irgendwie noch eine Initialisierung auf Eins für alle ungeraden Stellen vornehmen? Wenn ja: Wie am besten?
Ich habe schon einige Ideen, nur Probleme beim eigenständigen Formulieren.
Vllt noch ein int Ungerade deklarieren für Zahlen != /2
bzw. mit dem Modulo arbeiten?!
Bis auf meinen Anfängerfehler, für den ich mich schon ausreichend geschämt habe , habe ich dir doch oben geschrieben, was du machen musst.
Die Schleifen zum Durchlaufen des Arrays hast du. Dass du i+j mit Modulo auf gerade/ungerade prüfst, weißt du nun auch. Ich weiß nicht (mehr), wie das bei C mit der Arrayinitialisierung ist, in C# bräuchtest du nämlich keine. In der inneren Schleife prüfst du, ob (i+j)%2 0 oder 1 ist (wegen Summe gerade oder ungerade) und je nachdem gibst du eben 0 oder 1 aus. Fertig!
Nochmal: worum geht es bei Deiner Aufgabe? Um Array-Initialisierung? Um verschachtelte Schleifen? Um Array-Arithmetik?
Für die Ausgabe reichen die zwei Schleifen, die du schon hast. Dafür benötigst du kein Array.
Wenn es um die Initialisierung geht: ein Array kann bei der Definition vollständig initialisiert werden.
int a[2][2] = { {1,2}, {3,4} };
Wenn es rechnen mit Schleifenindizes geht, solltest du zwei geschachtelte Schleifen verwenden. Zuerst die Werte zuweisen, in der zweiten Schleife dann ausgeben.
Das wäre natürlich die einfachste Variante für mich,
sollte das aber schon als Funktion schreiben und nicht über printf ausgeben.
Ob mit Array oder ohne spielt dabei aber wohl keine Rolle