while-schleife
-
Hi leute ich hab mir heute mal aus langeweile n Programm geschrieben aber mein Problem ist wenn ich die richtige Antwort eingebe spielt es trotzdem die while schleife ab. Also wie kann ich das eingeben das sie nur bei einer falschen antwort kommt?? sry falls die bezeichnungen unübersichtlich sind
#include <iostream>
using namespace std;
int r;
int antwort=9;
bool richtig(int antwort)
{
bool a;
if(r%antwort==0)
a=true;
else
a=false;
return a;
}
bool richtig(int antwort);
int main()
{
bool a;
cout<<"Ein kleines Quiz: \nWenn du die frage richtig beantwortest bekommst du eine Belohnung,\n wenn nicht dann..."<<endl;
cout<<"Das Quiz beginnt: Wieviel Symphonien hat Beethoven komponiert?"<<endl;
cin>>r;
a=richtig(antwort);
if(a==true)
cout<<"Gl"<<(char)139<<"ckwunsch sie haben richtig geantwortet ihre Belohnung ist: \nDas sie die strafe nicht bekommen!!"<<endl;
else
cout<<"Sie sind ein idiot ihre strafe ist: "<<endl;
int s=1;
while(s<=16539)
{
cout<<"C:/Windows wir formatiert "<<s<<"von 16539 Datein formatiert!"<<endl;
s=s+1;
};
};
-
AtomAmeise schrieb:
Hi leute ich hab mir heute mal aus langeweile n Programm geschrieben aber mein Problem ist wenn ich die richtige Antwort eingebe spielt es trotzdem die while schleife ab. Also wie kann ich das eingeben das sie nur bei einer falschen antwort kommt?? sry falls die bezeichnungen unübersichtlich sind
#include <iostream>
using namespace std;
int r;
int antwort=9;
bool richtig(int antwort)
{
bool a;
if(r%antwort==0)
a=true;
else
a=false;
return a;
}
bool richtig(int antwort);
int main()
{
bool a;
cout<<"Ein kleines Quiz: \nWenn du die frage richtig beantwortest bekommst du eine Belohnung,\n wenn nicht dann..."<<endl;
cout<<"Das Quiz beginnt: Wieviel Symphonien hat Beethoven komponiert?"<<endl;
cin>>r;
a=richtig(antwort);
if(a==true)
cout<<"Gl"<<(char)139<<"ckwunsch sie haben richtig geantwortet ihre Belohnung ist: \nDas sie die strafe nicht bekommen!!"<<endl;
else
cout<<"Sie sind ein idiot ihre strafe ist: "<<endl;
int s=1;
while(s<=16539)
{
cout<<"C:/Windows wir formatiert "<<s<<"von 16539 Datein formatiert!"<<endl;
s=s+1;
};
};Zunächst ein grundsätzlicher Hinweis: Wenn du Hilfe erwartest, dann solltest du deinen Code auch so präsentieren, dass er sofort lesbar ist. So steigerst du deine Chance, dass du Hilfe bekommst. Dazu gibt es Code-Tags für C++:
int main() { // ... }Dein Code funktioniert deshalb nicht, da es einen Unterschied macht, ob man bei If-Else Klammern nutzt oder nicht.
if (...) a; else b; c;In diesem Fall wird c nicht ausgeführt. Daher muss man es so schreiben:
if (...) a; else { // <-- b; c; } // <--
-
cool danke funktioniert perfekt weiss du auch wie man die while-schleife verzögern kann also das man ers den text lesen kann und die z.B 5sec. später kommt??
-
asdasdasd schrieb:
AtomAmeise schrieb:
Hi leute ich hab mir heute mal aus langeweile n Programm geschrieben aber mein Problem ist wenn ich die richtige Antwort eingebe spielt es trotzdem die while schleife ab. Also wie kann ich das eingeben das sie nur bei einer falschen antwort kommt?? sry falls die bezeichnungen unübersichtlich sind
#include <iostream>
using namespace std;
int r;
int antwort=9;
bool richtig(int antwort)
{
bool a;
if(r%antwort==0)
a=true;
else
a=false;
return a;
}
bool richtig(int antwort);
int main()
{
bool a;
cout<<"Ein kleines Quiz: \nWenn du die frage richtig beantwortest bekommst du eine Belohnung,\n wenn nicht dann..."<<endl;
cout<<"Das Quiz beginnt: Wieviel Symphonien hat Beethoven komponiert?"<<endl;
cin>>r;
a=richtig(antwort);
if(a==true)
cout<<"Gl"<<(char)139<<"ckwunsch sie haben richtig geantwortet ihre Belohnung ist: \nDas sie die strafe nicht bekommen!!"<<endl;
else
cout<<"Sie sind ein idiot ihre strafe ist: "<<endl;
int s=1;
while(s<=16539)
{
cout<<"C:/Windows wir formatiert "<<s<<"von 16539 Datein formatiert!"<<endl;
s=s+1;
};
};Zunächst ein grundsätzlicher Hinweis: Wenn du Hilfe erwartest, dann solltest du deinen Code auch so präsentieren, dass er sofort lesbar ist. So steigerst du deine Chance, dass du Hilfe bekommst. Dazu gibt es Code-Tags für C++:
int main() { // ... }Dein Code funktioniert deshalb nicht, da es einen Unterschied macht, ob man bei If-Else Klammern nutzt oder nicht.
if (...) a; else b; c;In diesem Fall wird c nicht ausgeführt. Daher muss man es so schreiben:
if (...) a; else { // <-- b; c; } // <--Ich meinte natürlich: dann wird c IMMER ausgeführt. Tut mir leid.
Du könntest Sleep benutzen.
#include <windows.h> // ... int main() { // ... Sleep(1000); // Eine Sekunde warten // ... }
-
AtomAmeise schrieb:
cool danke funktioniert perfekt weiss du auch wie man die while-schleife verzögern kann also das man ers den text lesen kann und die z.B 5sec. später kommt??
willst du es systemabhängig oder systemunabhängig mit 100% cpu auslastung? ^^
wenn du deine cpu nicht 5sec auf volllast laufen lassen möchtest, müsstest du uns dein betriebssystem sagen^^bb
-
unskilled schrieb:
wenn du deine cpu nicht 5sec auf volllast laufen lassen möchtest, müsstest du uns dein betriebssystem sagen^^
wenn das so einfach wäre. Eine while-Schleife "optimieren" damit sie 5 sec Pause macht, geht wohl nur ein paar mal gut. Stärkerer Rechner und aus den 5 sec werden 2. Oder es wird nebenbei was anderes gerechnet und die CPU gibt dir weniger Rechenzeit, dann kann die Pause schon mal 20 sec sein.
Also Betriebssystem und du bekommst ein passendes sleep().
-
nanosekunder schrieb:
unskilled schrieb:
wenn du deine cpu nicht 5sec auf volllast laufen lassen möchtest, müsstest du uns dein betriebssystem sagen^^
wenn das so einfach wäre. Eine while-Schleife "optimieren" damit sie 5 sec Pause macht, geht wohl nur ein paar mal gut. Stärkerer Rechner und aus den 5 sec werden 2. Oder es wird nebenbei was anderes gerechnet und die CPU gibt dir weniger Rechenzeit, dann kann die Pause schon mal 20 sec sein.
Also Betriebssystem und du bekommst ein passendes sleep().In einer While-Schleife Timestamps zu vergleichen ist so unlogisch?

for(timestamp = time(NULL);timestamp + 5 <= time(0););Sollte eine recht zuverlässige 5 Sekunden Pause sein. Mit 100% Auslastung natürlich.