verständnisfrage array



  • hallo, wieso wird beidem folgenden code

    #include <iostream>
    
    using namespace std;
    
    int main(){
    
    	int x[] = {16 , 31 , 8 , 11 , 64 , 3 , 26 , 45 , 32 , 13};
    
    	bool off = true;
    	int n = 10 , i;
    
    	for ( i = 0; i<=(n-1); i++){
    
    			if (x[i] % 2 == 1 ){
    
    if (off)
    x[i] = 0 ;
    else
    x[i] = 1 ;
    off = !off;
    			}
    cout << x [i] << endl ;
    	}
    return 0 ;
    }
    

    diese ausgabe erzeugt?

    16
    0
    8
    1
    64
    0
    26
    1
    32
    0

    ich versteh nicht, woran es liegt, dass manchmal die 0 und manchmal die 1 kommt :S



  • #include <iostream>
    
    using namespace std;
    
    int main(){
    
        int x[] = {16 , 31 , 8 , 11 , 64 , 3 , 26 , 45 , 32 , 13};
    
        bool off = true;
        int n = 10 , i;
    
        // Schleife geht alle 10 Arrayelemente durch
        for ( i = 0; i <= (n-1); i++){
            // Wenn der Wert des Elements ungerade ist (also eine Divison durch 2
            // einen Rest von 1 ergibt), dann weise dem Element einen neuen
            // Wert (0 oder 1) zu
            if (x[i] % 2 == 1 ) {
                // Ist 'off' true wird dem Element der Wert 0 zugewiesen
                if (off)
                    x[i] = 0;
                // sonst wird dem Element der Wert 1 zugewiesen
                else
                    x[i] = 1;
                // "Ändere" 'off' von true auf false oder von false auf true ;)
                off = !off;
            }
            // Ausgabe des Elements
            cout << x [i] << endl ;
        }
    return 0 ;
    }
    


  • okay danke! das off = !off wars also 🙂


Anmelden zum Antworten