Rechnung



  • Hi leute,
    kann mir jemand anhand dieser Rechnung erklären, wie man auf die Ergebnisse der unteren Tabelle kommt?
    int main()
    {
    int i = 2;
    int j = -4;
    int k = 2;
    bool erg = false;
    i++;
    k+=8;
    ++j*=--i;
    erg = ((i<=k)&&(j>0) || (k>=(i+8)));
    cout << i << " " << j << " " << k << " " << erg << endl; // #1
    i=(k++/++j);
    k*=3;
    j-=7;
    erg = (((j==k)||(i>=(-1)*k)) && ((-1)*k>=(-3)*i));
    cout << i << " " << j << " " << k << " " << erg << endl; // #2
    return 0;
    }

    Tabelle:
    Zeile i j k erg
    #1 2 -6 10 1 (true)
    #2 -2 -12 33 0 (false)



  • Schau dir mal Postinkrement/Preinkrement an! Ich hoffe ich habe zu so später Stunde nichts falsch gemacht 😉

    int main() 
    { 
    	int i = 2; 
    	int j = -4; 
    	int k = 2; 
    	bool erg = false; 
    	i++;  // i = 2 + 1 = 3
    	k+=8; // k = k + 8 = 10
    	++j*=--i; // j = (j + 1) * (i - 1) = -3 * 2 = -6      // i = i - 1 = 3 - 1 = 2
    
    	// i = 2; j = -6; k = 10
    
    	erg = ((i<=k)&&(j>0) || (k>=(i+8))); // i<=k = true; j>0 = false // -> // (i<=k)&&(j>0) = false // (k>=(i+8) = 10 >= 10 = true // -> // erg = true
    
    	cout << i << " " << j << " " << k << " " << erg << endl; // #1 
    
    	i=(k++/++j); // i = k/(j + 1) = 10 / -5 = -2 // k = k + 1 = 11 // j = j + 1 = -6 + 1 = -5
    
    	// i = -2
    
    	k*=3; // k = k * 3 = 11 * 3 = 33
    	j-=7; // j = j - 7 = -5 - 7 = -12
    
    	erg = (((j==k)||(i>=(-1)*k)) && ((-1)*k>=(-3)*i)); // (j==k) = false; (i>=(-1)*k) ist (-2>=(-1)*33) = true // -> // teil 1 = true // (-1)*k>=(-3)*10) ist (-1)*33>=(-3)*(-2)) = false // -> // erg = false
    
    	cout << i << " " << j << " " << k << " " << erg << endl; // #2 
    	return 0; 
    }
    


  • Du hast zwei kleine Fehlerchen gemacht. Aber egal, ist schon saugut.


Anmelden zum Antworten