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 😕


Anmelden zum Antworten