Hackerboard WikiHaboBlog

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Was mach ich falsch ?

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 ...

Antwort
Alt 02.01.06, 22:52   #1 (permalink)
 
Registriert seit: 16.12.05
Chrizlybaer Leistung: Facit NTK
Likes: 0
Smile Was mach ich falsch ?


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;
}

Chrizlybaer ist offline   Mit Zitat antworten
Alt 02.01.06, 23:05   #2 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

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 {}
odigo ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 03.01.06, 00:10   #3 (permalink)
 
Registriert seit: 07.11.03
sfil Leistung: Facit NTK
sfil eine Nachricht über ICQ schicken
Likes: 0
Standard

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;
}
sfil ist offline   Mit Zitat antworten
Alt 03.01.06, 03:54   #4 (permalink)
cr
Guest
 
Likes:
Standard

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;
}
  Mit Zitat antworten
Alt 03.01.06, 12:36   #5 (permalink)
Themenstarter
 
Registriert seit: 16.12.05
Chrizlybaer Leistung: Facit NTK
Likes: 0
Standard

@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++)
und das else if eben.

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;
}
Des warum ich net "using namespace std;" benutzen soll hab ich allerdings noch net verstanden.

Ach noch was: Wenn jmd gute Tutorials zu C++ kennt darf er gerne posten
Chrizlybaer ist offline   Mit Zitat antworten
Alt 03.01.06, 15:35   #6 (permalink)
cr
Guest
 
Likes:
Standard

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.
  Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Was mach ich falsch ?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ä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


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61