Archiv verlassen und diese Seite im Standarddesign anzeigen : standard code aber falsch -.- c++
Apologist
14.11.2007, 00:27
ich hab so n buch zum lernen und hab hier ne aufgabe gehabt und die nach meiner methode gemacht und da hat mir der compiler nen fehler angezeigt, den ich nich verstehe
dann hab ich mir die musterlösung im buch angeguckt und die reingetippt
schon wieder: syntax error
is das buch falsch???
btw. compiler: dev c++
source:
#include <iostream>
using namespace std;
#include <stdlib.h>
int main ()
{
int Geraten;
int SuchZahl
srand(4);
SuchZahl = rand() % 1000 + 1;
do
{
cout << "Eine Zahl twischen 1 und 1000!" << endl;
cin >> Geraten;
if (Geraten < SuchZahl)
{
cout << "zu klein!" << endl;
}
if (Geraten > SuchZahl)
{
cout << "zu groß!" << endl;
}
}
while (Geraten != SuchZahl);
cout << "Das war richtig!" << endl;
}
Musst du halt gucken wo der compiler dir den fehler anzeigt.
ohne den code weiter anzugucken fällt mir nur das auf:
while (Geraten != SuchZahl);
wieso ist da hinter dem while() ein ; ?
aber jemand der cpp codet kann dir das sicher mit 1 blick sagen, ich code nur c#
Habs bei mir eingegeben und es ging nicht dann hier:
int Geraten;
int SuchZahl
Ein semikolon :
int Geraten;
int SuchZahl;
Dann ging es^^
Hoffe das war dein Prob
däääääh xD
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int main ()
{
int Geraten;
int SuchZahl;
srand(4);
SuchZahl = rand() % 1000 + 1;
do
{
cout << "Eine Zahl twischen 1 und 1000!" << endl;
cin >> Geraten;
if (Geraten < SuchZahl)
{
cout << "zu klein!" << endl;
}
if (Geraten > SuchZahl)
{
cout << "zu groß!" << endl;
}
}
while (Geraten != SuchZahl);
{
cout << "Das war richtig!" << endl;
getch();
}
return 0;
}
mfg
zao
Apologist
14.11.2007, 14:52
ihr hattet recht ^^
habs ausprobiert und es ging
ABER: hab noch n weiteres problem ....
ich hab das jetz geschafft zu compilen und das geht jetz auch so, aber wenn ich jetz die zahl richtig geraten hab, dann zeigt der mir nicht: Das ist richtig an, sondern schließt das fenster einfach
das is mir schon öfters passiert ... was kann ich dagegen tun?
born2die
14.11.2007, 15:41
hau noch nen getch(); rein....
Ja, ein getch löst das Problem. Die liegt übrigens in der conio.h, wie zao ja auch schon gepostet hat, nicht dass du vergissten, den header einzubinden. :)
zao warum machste den das hire while (Geraten != SuchZahl);
müßte das nicht so heißen while (Geraten == SuchZahl); ?^^
den sonnst wird ja nie Das war richtig! aus gegeben oder hab ich jetz
nen totalen denkfehler ^^
das is ne do-while Schleife xD
guggs dir mal nochmal an
-[RiDER]-
15.11.2007, 15:39
SuchZahl = rand() % 1000 + 1;
Möchtest du damit eine Zahl zwischen 1 und 1000 generieren???
Sinnloses Musterbeispiel... :shock:
SuchZahl = (int)((float)rand() / MAX_RAND * 1000);
Würde ich mal sagen ;)
if(Geraten < SuchZahl)
{
cout << "zu klein!" << endl;
}
if(Geraten > SuchZahl)
{
cout << "zu groß!" << endl;
}
würde ich mal ganz schnell zu nem...
if(Geraten < SuchZahl)
cout << "zu klein!" << endl;
else if(Geraten > SuchZahl)
cout << "zu groß!" << endl;...machen. Also else if bei der zweiten Bedingung und geschweifte Klammern weg ;)
{
cout << "Das war richtig!" << endl;
getch();
} Warum steht das in geschweiften Klammern???
Warum ne do-while-Schleife???
while würdes auch tun (n guter Compiler macht da garantiert auch ne while-Schleife draus...).
Ich würde ein...
while(1)
{
cout << "Eine Zahl twischen 1 und 1000!" << endl;
cin >> Geraten;
if(Geraten < SuchZahl)
cout << "zu klein!" << endl;
else if(Geraten > SuchZahl)
cout << "zu groß!" << endl;
else
break;
}...vorschlagen
Und besonders niedlich finde ich am Ende statt getch() ein system("pause");
MfG RiDER
Möchtest du damit eine Zahl zwischen 1 und 1000 generieren???
Sinnloses Musterbeispiel... Geschockt
Erm, das Beispiel funktioniert einwandfrei? rand gibt bei meinen Headern einen Integer zurück, wieso castest du das dann noch nach float? Der rand()-Code von zao ist logisch, warum sollte der dann nicht funktionieren? o0
If und else if ist klar, das mit den Klammern Geschmackssache und naja, die system finde ich persönlich nicht sooo prickelnd... Aber gut, jedem seien eigenen Stil. :]
Das Ganze ist eigtl. ein gutes Beispiel, wie verschiedene Leute dasselbe Problem lösen würden. :D
Ich hätte es wiederum so gemacht:
/edit: srand vergessen... oops. :)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
int main(int argc, char **argv)
{
int guessed, searched;
printf("\n\tGuess da numba!\n\n\n\tWhat d'you guess?\n");
srand(GetTickCount());
searched = rand() % 999 + 1;
while(true)
{
printf("\n\t > ");
scanf("%i", &guessed);
if(guessed == searched)
{
printf("\t ! R u jeez? That's true!\n");
break;
}
else if(guessed > searched)
printf("\t X Uh, that's too big...\n");
else
printf("\t X Erm, a bit more, please...\n");
}
printf("\n\n\tEnter a key to quit.\n\t");
getch();
return 0;
}
-[RiDER]-
15.11.2007, 18:06
Möchtest du damit eine Zahl zwischen 1 und 1000 generieren???
Sinnloses Musterbeispiel... Geschockt
Erm, das Beispiel funktioniert einwandfrei? rand gibt bei meinen Headern einen Integer zurück, wieso castest du das dann noch nach float? Der rand()-Code von zao ist logisch, warum sollte der dann nicht funktionieren? o0Ihr habt recht O_o
War ein Denkfehler von mir ;)
system() ist
1. unschön
2. meist nicht portabel
@fogx:
nimm doch die standardfunktion time() und statt getch() getchar() und schon hasste nen völlig portables programm ;)
kannste auf nem commodore, aufm schneiderpc, aufm powerpc, aufm intel usw. zum laufen bringen ;)
MfG RiDER
Du weißt ja, ich bin engagierter Windwoze-Coder... :) Aber natürlich hast du Recht.
Wegen"system": Das meine ich auch - unportabel, unschön usw., dachte nur, du hättest sagen wollen, dass man ihn verwenden soll. Sollte das nächste Mal genauer lesen.
Schlurmann
15.11.2007, 22:45
Variablen sollten beim Deklarieren auch immer gleich initialisiert werden. Das gehört zum guten Stil und beugt Fehlern vor.
http://geosoft.no/development/cppstyle.html#General%20Recomendations
Schöner Styleguide, sollte man sich dran halten. :)
-[RiDER]-
15.11.2007, 23:02
Hab auch mal sowas gepostet gehabt (für C): Coding-Standard nach Klaus Schmaranz (http://www.free-hack.com/viewtopic.php?p=197906#197906)
MfG RiDER
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.