Probleme mit else!
-
Hallo, ihr kennt mich, doch diesmal habe ich ein anderes Problem: Die Lösung mit den Arrays gefällt mir zwar rein optisch besser, doch hab eich mich da noch nicht reingefitz, ich habe mich gestern die ganbze Zeit mit diesen Programm rumgeplagt! Und was ich nicht verstanden habe, kann ich auch nicht erklären.
Der Compiler spuckt immer die fehlermeldung aus: If ohne zugehöriges else. Ich habe die If bedingungen derfach verkompliziert, weil ich dachte, dass die cout's am Ende vielleicht wegen angeblich besserer Geschwindigkeite ignoriert werden könntenm, weil bei mir immer nur utipische Zahlen (im dreistelligen Bereich innerhalb der ersten Gruppe). Die cout's findet ihr als Anmerkung fast ganz am Ende...
Ich dachte, ein else bezieht sich immer auf das letzte if !?!?!
für alle, die es nicht kennen, noch einaml die Aufgabenstellung: Ein Programm, dass nach ZUfall Zahlen von null bis zehn ausgibt und dabei zählt, wie häufig jede Zahl aufgerufen wird.
Wie muss ich dann noch den SLEEP-Befehl schreiben, mann braucht auch Zeit zum lesen!
Gibt es irgendeine Möglichkeit, mit einem Tastendruck das Programm anzuhalten? Es sollte so aussehen, dass wenn keine EIngabe erfaolgt, dass Programm ganz normal weiter läuft...
Übringens: Der "Zufallsgenerator" funktioniert, den habe ich einzeln getestet, weil ich dacht, die Utopischen Zahlen könnten daher rühren, aber der funktioniert tadellos! Nur Zahlen zwischen Null und Zehn!!!
Hier der Quellcode:#include <iostream> #include <windows.h> #include <ctime> #include <cstdlib> using namespace std; int zehn=0; int neun=0; int acht=0; int sieben=0; int sechs=0; int fuenf=0; int vier=0; int drei=0; int zwei=0; int eins=0; int null=0; void main() { srand(time(NULL)); while(true) //endlosschleifee { int randomzahl=rand()%11; cout<<randomzahl<<endl; if(randomzahl==10) cout<<zehn+1<<endl; zehn=zehn+1; //angabe der häufigkeit else cout<<zehn<<endl; if(randomzahl==9) cout<<neun+1<<endl; neun=neun+1; else cout<<neun<<endl; if(randomzahl==8) cout<<acht+1<<endl; acht=acht+1; else cout<<acht<<endl; if(randomzahl==7) cout<<sieben+1<<endl; sieben=sieben+1; else cout<<sieben<<endl; if(randomzahl==6) cout<<sechs+1<<endl; sechs=sechs+1; else cout<<sechs<<endl; if(randomzahl==5) cout<<fuenf+1<<endl; fuenf=fuenf+1; else cout<<fuenf<<endl; if(randomzahl==4) cout<<vier+1<<endl; vier=vier+1; else cout<<vier<<endl; if(randomzahl==3) cout<<drei+1<<endl; drei=drei+1; else cout<<drei<<endl; if(randomzahl==2) cout<<zwei+1<<endl; zwei=zwei+1; else cout<<zwei<<endl; if(randomzahl==1) cout<<eins+1<<endl; eins=eins+1; else cout<<eins<<endl; if(randomzahl==0) cout<<null+1<<endl; null=null+1; else cout<<null<<endl; /*cout<<"10"<<zehn<<endl; cout<<"9"<<neun<<endl; cout<<"8"<<acht<<endl; cout<<"7"<<sieben<<endl; cout<<"6"<<sechs<<endl; cout<<"5"<<fuenf<<endl; cout<<"4"<<zehn<<endl; cout<<"3"<<drei<<endl; cout<<"2"<<zwei<<endl; cout<<"1"<<eins<<endl; cout<<"0"<<null<<endl; cout<<" "<<endl; //sleep(1000); */ } };
Das Original sieht so aus:
#include <iostream> #include <windows.h> #include <ctime> #include <cstdlib> using namespace std; int zehn=0; int neun=0; int acht=0; int sieben=0; int sechs=0; int fuenf=0; int vier=0; int drei=0; int zwei=0; int eins=0; void main() { srand(time(NULL)); while(true) //endlosschleifee { int randomzahl=rand()%11; if(randomzahl==10) zehn=zehn+1; //angabe der häufigkeit else ; if(randomzahl==9) neun=neun+1; else ; if(randomzahl==8) acht=acht+1; else ; if(randomzahl==7) sieben=sieben+1; else ; if(randomzahl==6) sechs=sechs+1; else ; if(randomzahl==5) fuenf=fuenf+1; else ; if(randomzahl==4) vier=vier+1; else ; if(randomzahl==3) drei=drei+1; else ; if(randomzahl==2) zwei=zwei+1; else ; if(randomzahl==1) eins=eins+1; else ; cout<<"10"<<zehn<<endl; cout<<"9"<<neun<<endl; cout<<"8"<<acht<<endl; cout<<"7"<<sieben<<endl; cout<<"6"<<sechs<<endl; cout<<"5"<<fuenf<<endl; cout<<"4"<<zehn<<endl; cout<<"3"<<drei<<endl; cout<<"2"<<zwei<<endl; cout<<"1"<<eins<<endl; //sleep(1000); } };
-
Morgen,
wenn innerhalb einer if-Verzweigung mehr als nur eine Anweisung kommt, dann musst
du diese in einen eigenen Block machen://einfache if-else if(condition) doSomeThing(); else doSomeThingElse(); //if-else mit mehreren anweisungen if(condition) { doSomeThingHere(); doSomeThingThere(); } else { doSomeThingElseFere(); doSomeThingElseThere(); }
mfg
v R
-
Mr.Marcus schrieb:
... int zehn=0; int neun=0; int acht=0; int sieben=0; int sechs=0; int fuenf=0; int vier=0; int drei=0; int zwei=0; int eins=0; int null=0; ...
ausserdem sollte man für sowas ein array nehmen. dann wirst du auch dieses wahnsinnige if-else-if-else... los
edit: ungefähr sowas
int numbers[] = {0,0,0,0,0,0,0,0,0,0}; int main() { srand(time(NULL)); while (true) { numbers[rand()%11]++; for (int s=0; s<10; s++) cout << s << ": " << numbers[s] << endl; cout << "------------------" << endl; Sleep(1000); } }
-
Danke, der Code läuft erst einmal!
Nur, wieso funktioniert das original nicht, dass, wo die IF-Bedingungen nicht so viel beinhalten und die ELSE eine leere Anweisung?
-
Mr.Marcus schrieb:
Nur, wieso funktioniert das original nicht, dass, wo die IF-Bedingungen nicht so viel beinhalten und die ELSE eine leere Anweisung?
"Funktioniert nicht" ist keine ausreichende Fehlerbeschreibung.
Ich würde aber empfehlen, zwischen dem Text und den Zahlen noch das eine oder andere Leerzeichen auszugeben.
-
Da du mit den simpelsten Strukturen der Programmierung
schon ziemliche Probleme hast, würde ich dir empfehlen,
mal eins oder gleich beide dieser Tuts durchzulesen,
danach weisst du schon mal mehr:http://www.volkard.de/vcppkold/inhalt.html
http://tutorial.schornboeck.net/inhalt.htmDevil
-
Was hast du für Probleme mit elise?? Die ist doch ganz nett...
-
Mist ich bin zu spät... das war die erste frage die ich auch beantworten kann (das mit dem in den Block setzen meine ich)
naja schad.. aber immerhin funzt es ja jetzt....
ich halt die augen offen
-
scorp schrieb:
Was hast du für Probleme mit elise?? Die ist doch ganz nett...
Welche Beziehung gibt es zwischen dem Poster und dem geposteten zu elise?
mfg
v R
-
virtuell Realisticer schrieb:
Welche Beziehung gibt es zwischen dem Poster und dem geposteten zu elise?
Keine Ahnung, aber ich bekomm bei folgendem Code immer nen Syntaxfehler:
if(blabla) { } elise // was stimmt hier nicht ??????!!!!!11 { }
-
spinnerte
-
Jester schrieb:
virtuell Realisticer schrieb:
Welche Beziehung gibt es zwischen dem Poster und dem geposteten zu elise?
Keine Ahnung, aber ich bekomm bei folgendem Code immer nen Syntaxfehler:
if(blabla) { } elise // was stimmt hier nicht ??????!!!!!11 { }
Unglaublich :D. Elise, ich wuerde am besten diesen Namen patentieren lassen, dann
kannst du von Jester noch Lizensgebuehren dafuer verlangenmfg
v R
-
'else' oder 'elise' ist doch alles dieselbe grütze, kurzform von 'elisabeth' oder so.
meine freundin hatte mal 'ne katze, die hiess 'else'. was will ich damit sagen? nix.
-
welche 'grütze' ist net?
sicher nicht von nett .. nein, will ich auch nix mit sagen.meine mom heißt übrigens elise, ohne abkürzungs-'grütze'.
-
elise schrieb:
welche 'grütze' ist net?
huch? das war aber nicht böse gemeint.
manchmal juckts in den fingern und dann muss ich eben so'n schwachsinn schreiben...
-
oki, dann vielleicht doch von nett..