.
|
|
| Autor | Beitrag |
|---|---|
|
000 18.02.2002, 12:03 Psychodad |
Also mein Problem ist, dass in meiner Konsolenanwendung der Anwender einen Wert zwischen 1 und 6 angeben soll. Die Schleife dafür ist natürlich nicht das Problem sondern, dass der Anwender ja sowas wie z.B. 3333333333333333333 eingeben kann und somit mein Programm zum Absturz bringt. Kann man das irgendwie verhindern? Hane dazu leider nix in meinen Büchern und Tutorials gefunden. |
|
Profil || Suche |
|
001 18.02.2002, 12:28 mani |
hmm ? welche schleife ? -- |
|
Profil || Suche |
|
002 18.02.2002, 13:04 Psychodad |
Ist ja eigentlich egal oder? Das Problem ist, dass der Anwender (z.B.) eine Zahl zwischen 1 und 6 eingeben soll, das ganze in einer int-Variable gespeichert werden soll, jedoch aber z.B . 33333333333333 oder sonstewas hohes eingeben kann und mein Programm abstürzt. --Dieser Beitrag wurde am 18.02.2002 um 13:04 von Psychodad bearbeitet. |
|
Profil || Suche |
|
003 18.02.2002, 15:15 Kriz |
Bemerkung: INT_MAX ist auf den 16 Bit int Datentyp beschränkt. Falls du das moderne int abfragen willst (32 Bit), dann setze statt INT_MAX einfach LONG_MAX ein. --K:R-I)Z++ |
|
Profil || Suche |
|
004 18.02.2002, 15:20 mani |
kriz0r und was is wenner nen float wert eingibt ? -- |
|
Profil || Suche |
|
005 18.02.2002, 17:29 Kriz |
Dann wird der nach int gewandelt... o_O --K:R-I)Z++ |
|
Profil || Suche |
|
006 18.02.2002, 18:14 Psychodad |
Okay danke. Alles klar. Ich hab da noch ein anderes Problem. D.h. eigentlich hab ich ne Lösung gefunden, jedoch ist mir unklar warum das erstere nicht funktioniert. Code1: int main() return (0); Code2: int main() return (0); Die zweite Lösung funktioniert. Ich habe einfach beide Funktionen zu einer zusammengestellt, und die Do-While-Schleife in die Funktion tausch mit reingeschrieben. Die Schleife soll bewirken (und tut sie in dem zweiten Code auch), dass Spieler1 unter der besagten Bedingung(siehe Schleife Code1) noch einmal dran ist. Ich hab die Schleife sogar gleich so hingekriegt, dass sie auch für Spieler2 funktioniert (while(y==(7-x) || y==(14-x)). Dieser Beitrag wurde am 18.02.2002 um 18:16 von Psychodad bearbeitet. |
|
Profil || Suche |
|
007 18.02.2002, 18:28 Kriz |
Solche Sachen sind im Abfragefehler... Die erste do..while geht ja auf die Abfrage zurück: Solange erbsen[6] + erbsen[13] < 60, dann führe die Schleife aus. Die innere Schleife geht zurück auf: Solange y == (7-x). Und wo kommt das x her? --K:R-I)Z++ |
|
Profil || Suche |
|
008 18.02.2002, 19:27 Psychodad |
Hä? Wie jetzt? Ich verstehe jetzt nicht, was die äußere Schleife damit zu tun hat. Die Schleife, die ich meinte, ist ja so oder so innerhalb der äußeren. Das x gibt man auch als Anwender ein. y = erbsen[x-1] und x ist dann halt das, was der Anwender ansprechen will. Am besten poste ich mal den ganzen Code: #include<iostream> int erbsen[14] = {5,5,5,5,5,5,0,5,5,5,5,5,5,0}; int main() return (0); int tausch(int x) int ausgabe() do return(0); So, wenn ich jetzt als Anwender x=2 angebe, dann müsste ja die Bedingung y==(7-x) erfüllt sein, da ich ja für erbsen[2-1]=5 habe. |
|
Profil || Suche |
|
009 18.02.2002, 19:33 Tron |
[code]while(y == (7-x)); DAS nennt man ENDLOSSCHLEIFE --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
010 18.02.2002, 20:40 TheTinySteini |
Nein, nennt man es nicht, weil ja ein do { ...blablabla... } davor steht. Also ne do..while Schleife, keine while..nix. --TheTinySteini |
|
Profil || Suche |
|
011 19.02.2002, 10:29 Psychodad |
Das ist auf keinen Fall ne Endlosschleife. Das hätte ich ja bemerkt. Eher umgedreht. Die Schleife scheint ja in der Art und Weise gar nicht zu funktionieren. Aus irgendeinem Grund scheint ja die while-Bedingung nicht erfüllt zu sein. Aber warum? Ich hab ja ne andere Lösung gefunden. Die Frage ist ja wirklich nur, warum es nicht funktioniert. Und wenn mir da jemand was sagen könnte, wäre schon toll. Ihr könnt den Code so wie er oben steht, wenn ihr wollt direkt mal compilen und Euch angucken. --Dieser Beitrag wurde am 19.02.2002 um 10:30 von Psychodad bearbeitet. |
|
Profil || Suche |
|
012 19.02.2002, 11:21 mani |
hm, was willst du eigentlich immer mit #include <iomanip> ? kA für was das gut ist, aber für deinen code brauchste das glaub net... -- |
|
Profil || Suche |
|
013 19.02.2002, 11:48 Tron |
ups... *schaem* das kommt davon wenn man sich das nur etwa 2 sekunden anguckt *nochmehrschaem* --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
014 19.02.2002, 12:09 Tron |
so... jetzt hab ich mir mal deinen code genau angesehen, dein problem sind dein globalen variablen! du deklarierst ein globales x und ein lokales x in tausch!! gewoehn dir schnellsten diesen unstil mit globalen variablen ab, globale variblen sind zwar machmal notwendig, aber NICHT fuer sowas, komm erstmal ohne aus. anbei: gewoehn dir auch return (0); ab, return ist keine funkion, es heisst einfach return 0; und basta. --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
015 19.02.2002, 12:10 Kriz |
@jc: <iomanip.h> ist die Formatierungsbibliothek für Streams. --K:R-I)Z++ |
|
Profil || Suche |
|
016 19.02.2002, 12:28 mani |
gut, aber brauchen tut er's, soweit ich's überblicken kann, nicht :) -- |
|
Profil || Suche |
|
017 19.02.2002, 12:31 Tron |
doch, zumindest mit manchen standardbibliotheken. 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
018 19.02.2002, 13:09 Psychodad |
Oh, oh, oh. Danke für die Hilfe. Aber komme ich dann net besser die globale Variable x beizubehalten und dafür lieber tausch(void) zu machen? Falls Ihr noch mehr Schlampigkeiten findet sagt ruhig bescheid. Ich denke das Problem war, dass ich so Stück für Stück programmiert hab. Ich hätte wohl gleich mit einmal und mit Konzept loslegen sollen. Aber nochmal Danke für die Hilfe. -- |
|
Profil || Suche |
|
019 19.02.2002, 13:20 Tron |
nein, tu's nicht, du wirst dich dafuer selbst hassen.
uebertreib's nicht mit dem planen, sonst kommst du nimmer zum proggen. (;
kp -- 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
020 19.02.2002, 14:21 Psychodad |
So, und nun nochmal nach ganz vorne ;-) if (player == 1) } Trotz diesem neuen if stürzt mein Prog leider ab, wenn ich den int-Wert übersteige. Hab ich den Code falsch eingebunden? Ne, oder? -- |
|
Profil || Suche |
|
021 19.02.2002, 14:42 Psychodad |
Und jetzt hackts mich ganz weg. Hier praktisch das Programm von Kriz: #include<iostream> int main() cout << "Geben Sie eine Zahl zwischen 1 und 6 ein" << endl; Und selbst ohne den Teil mit INT_MAX stürtzt dieses Programm nicht ab. Hä? |
|
Profil || Suche |
|
022 19.02.2002, 14:48 Tron |
ich vermute mal du hast x als int deklariert... wenn ich ne zu grose zahl eingebe, wird zwar irgend eine zahl in x geschreiben (um genau zu sein das 2^32 modulo der eingegeben zahl) und ich muss nochmal eine zahl eingeben probleme gibt's bei mir nur wenn ich was ungueltiges eingebe (z.b. ein 'a') 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
023 19.02.2002, 15:16 Psychodad |
Bei mir im Code hab ich ja auch INT_MAX stehen. Das LONG_MAX war eher ein Versuch. Aber das scheint wirklcih in einer Endlosschleife zu enden - soweit ich da sauf dem Bildschirm dann nich erkennen kann. Blos halt, dass das Prog leider nicht auf meine Eingabe wartet. ?!? -- |
|
Profil || Suche |
|
024 19.02.2002, 15:33 Tron |
INT_MAX, LONG_MAX ... jacke wie hose (zumindest auf dem meisten heutigen compilern ist int == long) ich meinte dieses ganze if (x==INT_MAX) ist sinnlos, da ein int nunmal keinen groeseren wert als (2^31 - 1) annehmen KANN. --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|

