C :: Aufgabe #14 :: Lösung #3

3 Lösungen Lösungen öffentlich
#14

Zahlen erraten lassen.

Anfänger - C von zayc_ - 28.12.2012 um 14:08 Uhr
Programmiere ein Programm, welches eine vom User erdachte Zahl (Integer) in einem vom User angegebenen Bereich Erraten soll.

Konsolenausgabe:


Bitte Untergränze angeben: 0
Bitte Obergränze angeben: 100

Bitte geben sie nach jedem versuch R,G oder K an. je nachdem ob
R die Zahl richtig ist
G die gesuchte Zahl grösser ist
K die gesuchte Zahl kleiner ist



1. Versuch: 50.
k
2. Versuch: 25
g
3. Versuch: 37
g
4. versuch: 42
g
5. Versuch: 46
k
6. Versuch: 44
k
7. Versuch: 43
r
Die gesuchte Zahl war also die 43!



#3
vote_ok
von psych0dad (260 Punkte) - 17.11.2020 um 20:07 Uhr
Quellcode ausblenden C-Code
/****************************************************************************
 *                                                                          *
 *   Linux GCC                                                              *
 * Programmiere ein Programm, welches eine vom User erdachte Zahl (Integer) *
 * in einem vom User angegebenen Bereich Erraten soll.                      *
 *                                                                          *
 ****************************************************************************/

#include <stdio.h>
#include <stdlib.h>

/***** FEhler eingabe funktion *****/
void  fehler(void){
    printf("Eingabefehler!!! Versuchen sie es noch ein mal.\n");
 }



int main(void){
    int oberg, unterg, check1, check2, wieder=0;
    char antwort;

    do{
/****** Eingabe der Ober/Untergrenze *****/
    do{
        printf("Bitte Untergrenze eingeben: ");
        do{
        
            check1=scanf("%d", &unterg);
                if(check1!=1){
                    fehler();
                    printf("Bitte Untergrenze eingeben: ");
                 }
      } while(getchar()!='\n');

        printf("Bitte Obergrenze eingeben: ");
        do{
        
            check2=scanf("%d", &oberg);
                if(check2!=1){
                    fehler();
                    printf("Bitte Obergrenze eingeben: ");
                 }
         } while(getchar()!='\n');
        if(unterg>=oberg){
            fehler();
            printf("\n");
         }

     } while(unterg>=oberg); 
    
/***** Ausdruck, Spielanleitung *****/

    printf("\n\nBitte geben sie nach jedem Versuch R, G oder K. Je nachdem  ob\n");
    printf("R die Zahl richtig ist\n");
    printf("G die Zahl Groesser ist\n");
    printf("K die Zahl Kleiner ist\n\n");

    int versuch=0, zahl=0, gewonnen=0;

    do{

       
        ++versuch;
        zahl=(unterg+oberg)/2;
        printf("%d. Versuch: %d\n", versuch, zahl);
        scanf("%c%*c", &antwort);
           switch(antwort){
                case 'G': 
                case 'g': unterg=zahl; break;
                          
                case 'K': 
                case 'k': oberg=zahl; break;
                          
                case 'J': 
                case 'j': printf("Erraten\n"); gewonnen=1; break;
                          
                default: printf("Bitte verwenden sie nur die Buchstaben R, G und J\n");
                         versuch--;

          }           
     } while(gewonnen==0);
    printf("Diene Nummer lautet: %d\n", zahl);

    printf("Wollen sie noch ein Spiel? J(a)/N(ein): ");
    scanf("%c%*c", &antwort);
        if(antwort=='j'){
            wieder=1;
            printf("\n\n---NUE GAME---\n\n");
         }
        else if(antwort=='J'){
            wieder=1;
            printf("\n\n---NUE GAME---\n\n");
         }
        else
            wieder=0;
     } while(wieder==1);
    printf("\n\n---GAME OVER---\n\n");
    
    return EXIT_SUCCESS;   
    
}




















Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben