| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Was mach ich falsch ? im Forum Code Kitchen, in der Kategorie Software Home; Hab mal versucht n einfaches Ratespiel zu programmieren. Doch irgendwie kommen beim kompilieren immer folgende beiden Fehlermeldungen jeweils an den ...
![]() |
| | #1 (permalink) |
| Registriert seit: 16.12.05 ![]() Likes: 0 | Hab mal versucht n einfaches Ratespiel zu programmieren. Doch irgendwie kommen beim kompilieren immer folgende beiden Fehlermeldungen jeweils an den markierten Stellen: expected primary-expression before "else" expected `;' before "else" Was mache ich falsch ? Hier der Quelltext: #include <iostream> using namespace std; int main(int argc, char* argv[]) { int Zahl; srand( (unsigned)time( NULL ) ); Zahl = rand() % 100 +1; cout<<"Errate meine Zahl zwischen 1 und 100. Du hast 6 Versuche."<<endl<<"1. Versuch:"; int Versuch1; cin>>Versuch1; getchar(); if(Zahl<Versuch1) cout<<"Die Zahl ist kleiner als "<<Versuch1<<endl<<endl<<"2.Versuch:"; int Versuch2; cin>>Versuch2; getchar(); if (Zahl<Versuch2) cout<<"Die Zahl ist kleiner als "<<Versuch2<<endl<<endl<<"3.Versuch:"; int Versuch3; cin>>Versuch3; getchar(); if (Zahl<Versuch3) cout<<"Die Zahl ist kleiner als "<<Versuch3<<endl<<endl<<"4.Versuch:"; int Versuch4; cin>>Versuch4; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch4<<endl<<endl<<"5.Versuch:"; int Versuch5; cin>>Versuch5; getchar(); if (Zahl<Versuch5) cout<<"Die Zahl ist kleiner als "<<Versuch5<<endl<<endl<<"6.Versuch:"; int Versuch6; cin>>Versuch6; getchar(); if (Versuch6==Zahl) cout<<"Glückwunsch, sie haben die Zahl erraten!"<<endl; else cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war "<<Zahl<<endl; else cout<<"Die Zahl ist groesser als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch6; getchar(); if (Versuch6=Zahl) cout<<"Glückwunsch, sie haben die Zahl erraten!"<<endl; else cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war"<<Zahl<<endl; else cout<<"Die Zahl ist groesser als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch5; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch6; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch2<<endl<<endl<<"3.Versuch:"; cin>>Versuch3; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch2<<endl<<endl<<"3.Versuch:"; cin>>Versuch3; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch1<<endl<<endl<<"2.Versuch:"; if (Zahl<Versuch2) cout<<"Die Zahl ist kleiner als "<<Versuch2<<endl<<endl<<"3.Versuch:"; cin>>Versuch3; getchar(); if (Zahl<Versuch3) cout<<"Die Zahl ist kleiner als "<<Versuch3<<endl<<endl<<"4.Versuch:"; cin>>Versuch4; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch5; getchar(); if (Versuch6=Zahl) cout<<"Glückwunsch, sie haben die Zahl erraten!"<<endl; else cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war"<<Zahl<<endl; else cout<<"Die Zahl ist groesser als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch6; getchar(); if (Versuch6=Zahl) cout<<"Glückwunsch, sie haben die Zahl erraten!"<<endl; else cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war"<<Zahl<<endl; else cout<<"Die Zahl ist groesser als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch5; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch5<<endl<<endl<<"6.Versuch:"; cin>>Versuch6; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch2<<endl<<endl<<"3.Versuch:"; cin>>Versuch3; getchar(); if (Zahl<Versuch4) cout<<"Die Zahl ist kleiner als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); else cout<<"Die Zahl ist groesser als "<<Versuch4<<endl<<endl<<"5.Versuch:"; cin>>Versuch5; getchar(); getchar(); return 0; } |
| | |
| | #2 (permalink) |
| Senior Member | Ich glaub du solltest dir nochmal anschauen wie das mit if.. then.. else... funktioniert. if... then... else... else... gibt es nicht und macht logisch auch keinen sinn. odigo Edit: du solltest dir auch anschauen wie man es machen muss wenn man mehrere Anweisungen nach einem if bzw else ausführen will. Stichwort {}
__________________ [HaBo] @ Facebook - Gefällt mir! |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Hi, also ich hab mir den code mal angeschau und einige schleifen wieder zu gemacht, die includes mal ergänzt. Allerdings hat mir das [COLOR=red] kram etwas iritiert. das kenne ich bisher noch nicht. using namespace std; wusste ich auch ncihts mit anzufangen ich würde trotzdem deine if then else schleifen mal kontrollieren, die sind wohl noch arg kaputt Code: #include <stdafx.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
//using namespace std;
int main()
{
int Zahl;
srand( (unsigned)time( NULL ) );
Zahl = rand() % 100 +1;
cout<<"Errate meine Zahl zwischen 1 und 100. Du hast 6 Versuche." ;
cout <<"1. Versuch:";
int Versuch1;
cin>>Versuch1;
getchar();
if(Zahl)
cout<<"Die Zahl ist kleiner als "<<"2.Versuch:";
int Versuch2;
cin>>Versuch2;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"3.Versuch:";
int Versuch3;
cin>>Versuch3;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"4.Versuch:";
int Versuch4;
cin>>Versuch4;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"5.Versuch:";
int Versuch5;
cin>>Versuch5;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"6.Versuch:";
int Versuch6;
cin>>Versuch6;
getchar();
if (Versuch6==Zahl)
cout<<"Glückwunsch, sie haben die Zahl erraten!";
else
cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war ";
else
cout<<"Die Zahl ist groesser als "<<"6.Versuch:";
cin>>Versuch6;
getchar();
if (Versuch6=Zahl)
cout<<"Glückwunsch, sie haben die Zahl erraten!";
else
cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war"<<
else cout<<"Die Zahl ist groesser als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"6.Versuch:";
cin>>Versuch5;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"6.Versuch:";
cin>>Versuch6;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"3.Versuch:";
cin>>Versuch3;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"3.Versuch:";
cin>>Versuch3;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"2.Versuch:";
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"3.Versuch:";
cin>>Versuch3;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"4.Versuch:";
cin>>Versuch4;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"6.Versuch:";
cin>>Versuch5;
getchar();
if (Versuch6=Zahl)
cout<<"Glückwunsch, sie haben die Zahl erraten!"<
else
cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war"<<
else
cout<<"Die Zahl ist groesser als "<<"6.Versuch:";
cin>>Versuch6;
getchar();
if (Versuch6=Zahl)
cout<<"Glückwunsch, sie haben die Zahl erraten!"<
else
cout<<"Schade, sie haben die Zahl leider nich erraten. Die Zahl war"<<
else
cout<<"Die Zahl ist groesser als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"6.Versuch:";
cin>>Versuch5;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"6.Versuch:";
cin>>Versuch6;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"3.Versuch:";
cin>>Versuch3;
getchar();
if (Zahl)
cout<<"Die Zahl ist kleiner als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
else
cout<<"Die Zahl ist groesser als "<<"5.Versuch:";
cin>>Versuch5;
getchar();
getchar();
return 0;
} | |
| | |
| | #4 (permalink) |
| Guest Likes: | Irre ich mich jetzt oder soll das C++ sein (ist ja schon spät)? Wenn ja hast du recht viel falsch gemacht! Als erstes wenn du nach einem if oder else mehrere Anweisungen hast, musst du die in geschweifte Klammern {} setzen! Dann gehört der else Block hinter den if Block und im Falle mehrerer if Abfragen nimmt man if nur beim ersten block, dann else if bzw beim letzen der den default Fall darstellt nur else. Naja lies am besten nochmal nach. Zu dem using namespace std, cout, cin oder endl sind alles Funktionen der C++ Standard Bibliothek welche im namespace std liegen und damit du nicht immer std::cout schreiben musst kannst du die using direktive nutzen. Und nur zu Ergänzung durch die using direktive brichst du mit dem dem Konzept der Namespaces, besser ist es die using Deklaration zu nutzen für die Befehle die du nutzt zb using std::cout;. Naja damit der Text nich ganz umsonst war habe ich dir mal noch schnell geschrieben wie ich das machen würde. (der Code ist in der Habo IDE entworfen und ungetestet! (; ) Code: #include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main(int argc, char* argv[])
{
srand( (unsigned)time( NULL ) );
int Zahl=rand() % 100 +1;
int AnzahlDerVersuche=6;
int eingabe;
cout<<"6 Versuche um eine Zahl bis 100 zu raten!\n";
for(int i=1;i<=AnzahlDerVersuche;i++){
cout<<"Versuch nummer "<<i<<":";
cin>>eingabe;
if(eingabe==Zahl) {
cout<<"die eingegebene zahl war richtig!\n du hast "<<i<<" Versuche gebraucht\n.";
break;
}
else if (eingabe<Zahl)
cout<<"die eingegebene zahl war kleiner als die gesuchte zahl!\n";
else if (eingabe>Zahl)
cout<<"die eingegebene zahl war groesser als die gesuchte zahl!\n";
else
cout<<"ungültige eingabe\n";
}
getchar();return 0;
} |
|
| | #5 (permalink) |
| Themenstarter Registriert seit: 16.12.05 ![]() Likes: 0 | @odigo: Ich hatte doch pro "if" jeweils ein "else". @sfil: Das [COLOR=red] sollte nur zeigen an welchen Stellen der Compiler jeweils die Fehlermeldung anzeigt. Bei deinem Code hat sich nichts verändert. Kommt die gleiche Fehlermeldung. @cr0523: Deins hat fast funktioniert. Musste nur noch ein "getchar()" einbauen. So ne ähnliche Lösung hab ich au gesucht kannte nur das nicht: Code: for(int i=1;i<=AnzahlDerVersuche;i++) So siehts jetzt aus: Code: #include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main(int argc, char* argv[])
{
srand( (unsigned)time( NULL ) );
int Zahl=rand() % 100 +1;
int AnzahlDerVersuche=6;
int eingabe;
cout<<"6 Versuche um eine Zahl bis 100 zu raten!\n";
for(int i=1;i<=AnzahlDerVersuche;i++){
cout<<"Versuch "<<i<<":";
cin>>eingabe;
getchar();
if(eingabe==Zahl) {
cout<<"die eingegebene zahl war richtig!\n du hast "<<i<<" Versuche gebraucht\n.";
break;
}
else if (eingabe<Zahl)
cout<<"Die Zahl ist groesser als deine eingegebene Zahl!\n";
else if (eingabe>Zahl)
cout<<"Die Zahl ist kleiner als deine eingegebene Zahl!\n";
else
cout<<"ungültige eingabe\n";
}
getchar();
return 0;
} Ach noch was: Wenn jmd gute Tutorials zu C++ kennt darf er gerne posten |
| | |
| | #6 (permalink) |
| Guest Likes: | Hab den Code heute mal getestet bei mir gehts komplett ohne die getchar()'s, wenn du dich ernsthaft mit C++ beschäftigen willst rate ich dir zu "The C++ Programming Language" von Stroustrup. Für Linux gibts hier ein sehr gutes online Buch: http://cpp-entwicklung.de/cpplinux3/.../cpp_main.html Das meiste geht natürlich auch unter Windows da C++ im Prinzip eine Plattformunabhängige Sprache ist (Wenn Windows das mal vernünftig implementieren würde!). Meld dich mal per PM bei Interesse an ein paar freien ebooks zum Thema, hab da bisschen was auf meinem FTp rumliegen. |
|
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| UMTS Stick - simlock - oder mach ich was falsch? | nonpretium | Internet Allgemein | 1 | 23.09.09 18:25 |
| Squid schaltet ab, wenn dante startet was mach ich falsch? | Wasserratte | Linux/UNIX | 2 | 25.01.08 23:00 |
| MYSQL Injection, was mach ich falsch. | IRoot | Webmaster-Security | 24 | 29.06.07 21:40 |
| Programmieren anfänger was mach ich falsch? | onix | Code Kitchen | 6 | 15.06.07 13:47 |
| Was mach ich Falsch ? Turbo C | Bogus | Code Kitchen | 1 | 10.08.05 23:08 |