frage zum 2 dimensionalen array



  • also erstmal:
    ich habe ein 2-d array.. insgesammt sind es 9 felder.. jedes dieser felder hat als wert eine 1 oder eine 0..

    jetzt soll eine benutzereingabe erfolgen.. bei der eingabe "x" sollen beispielsweise 3 dieser 9 felder den entgegengesetzten wert annehmen..

    frage:
    muss ich für jedes feld extra eine abfrage machen:

    if (feld[0][0]==1)
    feld[0][0]=0;
    else
    feld[0][0]=1;
    

    oder geht das auch einfacher?



  • Du kannst statt int bool verwenden. Dann kannst du sagen:

    feld[x][y] = !feld[x][y];
    

    Amsonsten ist mir nicht klar, welche der 9 Felder da jeweils geändert werden. Wenn das ein bestimmtes Muster hat, kann man das sicher elegant mit einer Schleife lösen.

    Nachtrag:

    wenn es int sein muss, dann kannst du den neuen Wert auch nach folgender Formel berechnen:

    #include <cmath>
    feld[x][y] = abs(feld[x][y] - 1);
    

    Is halt nicht gerade optimized. 🙄
    Oder du packst dein if - else in eine Funktion. Ach, da gibt's tausend Möglichkeiten. Aber wenn wirklich nur diese beiden Werte angenommen werden, dann würde ich bool verwenden. 😉


Anmelden zum Antworten