Ich habe ein Problem mit einer Aufgabe, die die C-Programmierung betrifft.
Es geht um ein C-Programm, das zufällig zwei ganze Zahlen a und b zwischen 1 und 1000 bestimmt, so dass a <= b gilt. Der Benutzer soll so lange aufgefordert werden, eine Zahl zu raten, bis er die Zahl gefunden hat, die genau in der Mitte von a und b liegt. Nach jedem Rateversuch erhält der Benutzer einen Hinweis: Ist die Zahl kleiner als a oder größer als b: „Viel zu klein!“ bzw. „Viel zu groß!“ Ist die Zahl im richtigen Bereich, aber näher einer Grenze als an der Mitte: „Zu klein!“ bzw. „Zu groß!“ Anderenfalls: „Ein bisschen zu klein!“ bzw. „Ein bisschen zu groß!“
Wenn der Benutzer richtig geraten hat, erhält er die Mitteilung „Richtig!“ und die Grenzen werden zur Kontrolle ausgegeben.
Ich komme nicht richtig zurecht und stehe auf dem Schlauch.
Ich wollte eigentlich Zahlenräume schaffen, die unterscheiden zwischen "viel zu groß" und "ein bisschen zu groß" - die ich aber nicht umsetzten kann.
Ich muss dazu sagen, dass ich noch ein blutiger Anfänger bin.
Code: Alles auswählen
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//Funktion für die zufällige Nummer
//int randomNumber() {
//int r = rand() % 1001 + 1;
int main() {
srand(time(NULL));
int a, b;
do{
a = rand() % 1000 + 1;
b = rand() % 1000 + 1;
} while (a <= b);
int mitte = (a + b) / 2;
int gerateneZahl;
//Diese drei Zeilen habe ich nur genutzt, um zu überprüfen, ob die Zahlen stimmen
printf("%i\n", a);
printf("%i\n", b);
printf("%i\n", mitte);
printf("\nBitte geben Sie eine Zahl ein: ");
scanf_s("%i", &gerateneZahl);
while (a <= b) {
if (gerateneZahl > mitte) {
printf("ein bisschen zu groß\n");
}
if (gerateneZahl > (mitte)) {
printf("viel zu gross\n");
}
else if (gerateneZahl < mitte) {
printf("ein bisschen zu klein\n");
}
else if (gerateneZahl < (mitte)) {
printf("viel zu klein\n");
}
if (gerateneZahl == mitte) {
printf("Richtig! Die Grenzen waren %d und %d\n", a, b);
}
}
return 0;
}
Ich bin für jeden Kommentar dankbar und brauche hier echt Hilfe.
Vielen Dank!