C :: Aufgabe #14 :: Lösung #1
3 Lösungen
#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!
#1
von devnull (8870 Punkte)
- 07.12.2013 um 19:47 Uhr
/* guess2.c devnull,07-12-2013 */
#include <stdlib.h>
#include <stdio.h>
/* main */
int main()
{
int lower, upper;
int guess, cguess;
char answer[2];
printf("Bitte Untergrenze angeben: ");
scanf( "%d", &lower );
printf("Bitte Obergrenze angeben : ");
scanf( "%d", &upper );
if (lower >= upper) {
printf("Bereich ungültig!\n");
return 1;
}
printf("Bitte geben sie nach jedem versuch R,G oder K an. je nachdem ob\n" \
"R die Zahl richtig ist\n" \
"G die gesuchte Zahl grösser ist\n" \
"K die gesuchte Zahl kleiner ist\n");
for (cguess=1;;cguess++) {
guess = (upper + lower)/2;
printf("%3d. Versuch: %4d\n", cguess, guess);
scanf("%s", answer);
switch (answer[0]) {
case 'k':
case 'K':
upper = guess;
break;
case 'g':
case 'G':
lower = (upper-guess>1)?guess:guess+1;
break;
case 'r':
case 'R':
lower = upper = guess;
break;
}
if (lower == upper)
break;
}
printf("Die gesuchte Zahl war also die %d!\n", lower);
return 0;
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
