for mit vielfachenüberprüfung
-
ich wusste nicht, wie ich den beitrag anders nennen sollte....
hier mein code
#include <iostream> using namespace std; int main() { int loop; int quadr = 0; for(loop = 0; loop <= 100; ++loop) { quadr = loop * loop; cout << "Das Quadrat von: " << loop << " ist: " << quadr << endl; } return 0; }
ich will, dass der in der for-schleige überprüft, ob quadr ein vielfaches von 10 ist und wenn dem so ist, ich eine ausgabe bekomme dir mir sagt: "Press enter to continue..."
- ich weis nicht, wie ich es anstellen kann, dass ich enter drücke und er dann weitermacht.
ich hab es schon so versucht
int a; cin >> a;
nun leider geht des net, da dieser code ja eine eingabe in a erwartet und ich eigentlich nur enter drücken will.
ich habe versucht, per if-anweisung eine überprüfung der variable quadr einzubauen. sa dann so aus:
for(loop = 0; loop <= 100; ++loop) { quadr = loop * loop; if(quadr%10) { cout << "Press Enter to continue..." } cout << "Das Quadrat von: " << loop << " ist: " << quadr << endl; }
da macht er es aber andersrum... er schreibt vor jede cout-anweisung " Press Enter to continnue...", nur da, wo quadr ein vielfaches von 10 ist, schreibt er es nicht davor.
hoffe auf antworten.
thx Spyro
- ich weis nicht, wie ich es anstellen kann, dass ich enter drücke und er dann weitermacht.
-
Spyro schrieb:
da macht er es aber andersrum... er schreibt vor jede cout-anweisung " Press Enter to continnue...", nur da, wo quadr ein vielfaches von 10 ist, schreibt er es nicht davor.
Dann negiere das ganze doch einfach
if(!(quadr%10))
-
Spyro schrieb:
int a; cin >> a;
versuche es mal mit:
char tmp[100]; cin.getline(tmp,100);
-
ok danke dir, hat beides einwandfrei funktioniert.
könntest du mir nur noch die funktionsweise erklären !?
ich blick des nämlich nicht ganz...eigentlich müsste er doch schauen, ob quadr ein vielfaches von 10 ist mit der anweisung
if(quadr%10)
und wenn dies erfüllt ist, dann gibt er erst den anweisungsblock wieder.... wieso aber ist es genau andersrum ??
und des andere..
char tmp[100]
ist klar
aber was hat "getline" zu bedeuten ?ich hoffe mal des kommt net zu dumm gefragt rüber
Spyro
-
if (quadr%10)
14 % 10 ist 4. 4 evaluiert zu true.
20 % 10 ist 0. 0 evaluiert zu false.
Du willst bei 20 % 10 aber ein true erreichen. Alles klar?
Du könntest stattif (!(quadr%10))
genausogut
if (quadr%10 == 0)
schreiben.
"Press enter to continue":
cout << "Press enter to continue..."; cin.get();
-
Der erste Punkt wurde ja bereits erklaert.
Ich benutze getline anstelle von get, da sonst wenn du eine Eigabe wie:
asdfg'\n'
hast, gleich mehrere get Aufrufe übersprungen werden.getline(...) liest die ganze Zeile ein und schreibt sie in nach tmp. Im gengensatz zu cin>> liest es auch Leerzeichen mit ein.
-
ok danke @ davie für die erklärung. habs kapiert
edit: *gg* auch an dich Entyl_SaGruß Spyro