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.