Programm Zahlenraten - benötigte Versuche anzeigen lassen aber wie ??? Hilfe!!!
-
Hallo!
Ich habe folgendes Programm geschrieben:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>const wertebereich = 1000;
int Zufallszahl, Ratezahl, Versuche;int zufall (int max_zufall=wertebereich)
{
return rand() %1001; // Was bringt der Parameter, wenn du doch hard codierst?
}int main()
{
rand();Zufallszahl = zufall();
printf ("Herzlich Willkommen beim Zahlenraten\n\n");
printf ("Sie muessen versuchen eine von mir per Zufallsgenerator ausgewaehlte\n");
printf ("Zahl zwischen 0 und 1000 zu erraten!\n\n");
printf ("Das System gibt Ihnen folgende Hilfe: Wenn Ihre Zahl\n\n");
printf ("1 bis 10 Nummern < oder > ist als die Zufallszahl erscheint ein Heiss\n");
printf ("11 bis 50 Nummern < oder > ist als die Zufallszahl erscheint ein Warm\n");
printf ("51 Nummern < oder > ist als die Zufallszahl erscheint ein Kalt\n\n");
printf ("Am Ende wird Ihnen die Anzahl Ihrer benoetigten Versuche angezeigt.\n\n");
printf ("Viel Erfolg!\n\n");do
{
scanf ("%d", &Ratezahl);
if (Ratezahl < Zufallszahl+11 && Ratezahl > Zufallszahl-11)
printf ("Heiss\n");
if (Ratezahl > Zufallszahl+10 && Ratezahl < Zufallszahl+51)
printf ("Warm\n");
if (Ratezahl < Zufallszahl-10 && Ratezahl > Zufallszahl-51)
printf ("Warm\n");
if (Ratezahl < Zufallszahl-50 && Ratezahl >1 || Ratezahl > Zufallszahl+50 && Ratezahl <999)
printf ("Kalt\n");
if (Ratezahl > 999)
printf ("Es werden nur Zahlen zwischen 0 und 1000 gesucht!\n");}
while ( Ratezahl != Zufallszahl );
printf ("Sie haben die richtige Zahl gefunden");}
Nun muß ich aber noch anzeigen lassen, wieviele Versuche der Spieler benötigt hat, kann mir da jemand bei helfen ?
Ich habe schon gehört, dass ich in der Schleife noch eine Konstante einfügen soll, die ich dann hochzählen lassen, aber Wie geht dass ?Danke für alle Tipps!
-
[.cpp]tag's das ist bulljio, bulljio das hier sind die [.cpp]tag's. Nutze sie doch einfach.
Außerdem finde ich es ziemlich dämlich das du einfach den im c++ gepostet Code übernimmst und nachzudenken, warum deklarierst du nun eine konstante ohne typ und nutzt sie dann nicht mal
Hier, schau dir meinen Code nochmal an:
http://www.c-plusplus.net/forum/viewtopic.php?t=64738
Na ja nochmal dein zusammengeschusterter Code:
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <time.h> const wertebereich = 1000; int Zufallszahl, Ratezahl, Versuche; int zufall (int max_zufall=wertebereich) { return rand() %1001; // Was bringt der Parameter, wenn du doch hard codierst? } int main() { rand(); Zufallszahl = zufall(); printf ("Herzlich Willkommen beim Zahlenraten\n\n"); printf ("Sie muessen versuchen eine von mir per Zufallsgenerator ausgewaehlte\n"); printf ("Zahl zwischen 0 und 1000 zu erraten!\n\n"); printf ("Das System gibt Ihnen folgende Hilfe: Wenn Ihre Zahl\n\n"); printf ("1 bis 10 Nummern < oder > ist als die Zufallszahl erscheint ein Heiss\n"); printf ("11 bis 50 Nummern < oder > ist als die Zufallszahl erscheint ein Warm\n"); printf ("51 Nummern < oder > ist als die Zufallszahl erscheint ein Kalt\n\n"); printf ("Am Ende wird Ihnen die Anzahl Ihrer benoetigten Versuche angezeigt.\n\n"); printf ("Viel Erfolg!\n\n"); // Zaehlvariable /////// int = 1; // Ein Versuch wird ja mindestens gebraucht do { scanf ("%d", &Ratezahl); if (Ratezahl < Zufallszahl+11 && Ratezahl > Zufallszahl-11) printf ("Heiss\n"); if (Ratezahl > Zufallszahl+10 && Ratezahl < Zufallszahl+51) printf ("Warm\n"); if (Ratezahl < Zufallszahl-10 && Ratezahl > Zufallszahl-51) printf ("Warm\n"); if (Ratezahl < Zufallszahl-50 && Ratezahl >1 || Ratezahl > Zufallszahl+50 && Ratezahl <999) printf ("Kalt\n"); if (Ratezahl > 999) printf ("Es werden nur Zahlen zwischen 0 und 1000 gesucht!\n"); ++i; // nach jedem Versuch i ums "1" erhoehen } while ( Ratezahl != Zufallszahl ); printf ("Sie haben die richtige Zahl gefunden"); /* Hier jetzt noch mal printf und einfach i ausgeben und sagen das das die versuche waren */ }
Hoffe geholfen zu haben :roll:
-
@1280x1024
So ganz richtig ist deine Lösung aber auch noch nicht. Da fehlt z. B. ein i hinter int. Außerdem sollte dann i mit 0 initialisiert werden. Wie du selber geschrieben hast: Ein Versuch wird ja mindestens gebraucht und nicht 2@bullijo
Du kannst dir ne Menge Schreibarbeit und dem System ne Menge Rechenzeit sparen, wenn du deine Abprüfungen so schreibst:if(abs(Ratezahl-Zufallszahl)<11) ...
Ich hoffe man hat bei euch in der Schule in Mathematik absolute Werte durchgenommen.
-
@AJ das kommt davon wenn man das einfach so in den quelltext tipp :roll:
Aber hast recht, 2 dumme Fehler