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

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!



#2
vote_ok
von kathleenw (3600 Punkte) - 09.07.2020 um 10:08 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <stdlib.h>

int berechne_zahl(int zahl1, int zahl2)
{
    int ergebnis;
    
    ergebnis = (zahl1+zahl2)/2;
    
    return ergebnis;
}

int main(void)
{
    int obergrenze, untergrenze, versuche, zahl;
    char eingabe[100];
    
    versuche = 1;
    
    printf("\nBitte denke dir eine Zahl aus und der Computer probiert sie zu erraten.\n\n");
    
    printf("Bitte Untergrenze angeben: ");
    scanf("%d", &untergrenze);
    fflush(stdin);
    
    printf("Bitte Obergrenze angeben: ");
    scanf("%d", &obergrenze);
    fflush(stdin);
    
    printf("\nBitte geben sie nach jedem Versuch folgendes ein:\n");
    printf("r - die Zahl ist richtig.\n");
    printf("g - die gesuchte Zahl ist größer.\n");
    printf("k - die gesuchte Zahl ist kleiner.\n\n");
    
    do {
        zahl = berechne_zahl(untergrenze,obergrenze);
        printf ("%d. Versuch: %d\n", versuche, zahl);
        fgets(eingabe,obergrenze,stdin);
        
        printf("Test: %c \n", eingabe[0]);
        
        if (eingabe[0]=='r'){
            printf("Die gesuchte Zahl war also die %d! Ich habe %d Versuche gebraucht.\n", zahl, versuche);
        }
        else if (eingabe[0]=='g'){
            untergrenze = zahl;
        }
        else if (eingabe[0]=='k'){
            obergrenze = zahl;
        }
        else {
            printf("Sie haben ein falsches Zeichen eingegeben.\n");
            break;
        }
        
        versuche++;
    }while(eingabe[0]!='r');
    
    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