Zufallszahlen in C, der Computer muss Zahl erraten?
Hallo Leute, hätte eine Frage und zwar haben wir eine HÜ auf wo wir uns eine Zahl ausdenken sollen und der Computer soll sie erraten. Habe keinen Plan wie es funktioniert. Könnt ihr mir helfen
1 Antwort
Zufallszahlen erzeugt man mit der rand-Funktion:
srand(time(NULL));
int zahl1 = rand() % 10;
In diesem Beispiel ist das ist dann eine Zahl zwischen 0 und 10, wobei die 0 vorkommen kann, die 10 aber nicht.
Dann würde das Programm sagen können: "War es die 37" und du sagst dann ja oder nein.
Wenn das Programm die Zahl wirklich auch finden soll, dann kann das nur über eine binäre Suche sinnvoll funktionieren - das hat dann aber nichts mehr mit Zufallszahlen zu tun. Sprich, der Computer muss eine Zahl ausgeben, Du sagst dann "größer" oder "kleiner" und der Computer sucht im entsprechenden Intervall eine neue Zahl.
Beispiel: Du denkst Dir eine Zahl zwischen 0 und 100 aus, beispielsweise die 17.
Der Computer fragt: 50? (Mitte zwischen 0 und 100)
Du sagst "kleiner"
Der Computer fragt: 25? (Mitte zwischen 0 und 50)
Du sagst "kleiner"
Der Computer fragt: 12? (Mitte zwischen 0 und 25)
Du sagst "größer"
Der Computer fragt: 18? (Mitte zwischen 12 und 25)
Du sagst "kleiner"
Der Computer fragt: 15? (Mitte zwischen 12 und 18)
Du sagst "größer"
Der Computer fragt: 16? (Mitte zwischen 15 und 18)
Du sagst "größer"
Der Computer fragt: 17? (Mitte zwischen 16 und 18)
Fertig
Nö. Andersrum wird ein Schuh draus - Du schickst Deinen Code und ich kann schauen, was evtl. nicht stimmt.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int zahl=0;
int maximum=0,minimum=0,ergebnis=0;
srand(time(NULL));
printf("Bitte Maximum eingeben: ");
scanf("%d",&maximum);
printf("Bitte Minimum eingeben: ");
scanf("%d",&minimum);
if(zahl>ergebnis){
printf("Zu klein");
}
if(zahl<ergebnis){
printf("Zu Groß");
}
if(zahl==ergebnis){
printf("Richtig");
}
return EXIT_SUCCESS;
}
ich komm nicht weiter:) Bitte um Hilfe!!!
Naja, es würde von mal helfen, wenn Du eine Zufallszahl erzeugst. Das tut Dein Code nicht. Der initialisiert den Zufallszahlengenerator, aber das war's auch. Weiterhin gibst Du nur einen minimalen und maximalen Bereich ein, in dem Deine Zufallszahl liegt - aber nicht die Zahl selbst.
Ah okay danke, aber ich hab's versucht aber es funktioniert nicht. Kannst du Quellcode schicken. Dann kann ich schauen wo der Fehler liegt.