Cemil
Erfahrenes Mitglied
Hallo zusammen,
ich lerne gerade C und hätte eine Frage zu der Funktion rand:
Das Programm sollte eine Zufallszahl zwischen 1 und 10 erzeugen, schön und gut, aber es erzeugt immer die gleiche Zahl (die Zahl 1). Das ist ja nicht der Sinn und Zweck der Sache.
Die Bedingung für das Spiel lautet:
1. Man hat max. 3 Versuche (count != 3), in denen man die Zahl erraten muss.
2. Solange die Variable von erraten auf dem Wert 0 UND den Zähler für die Versuche count noch nicht auf 3 stehen, beginnt der Anweisungsblock wieder von neuem.
3. Ist eine dieser Bedingungen unwahr, hat man entweder die Zahl erraten oder mehr als drei Versuche benötigt. Dies wird anschliessend nach dem Anweisungsblock ausgewertet.
Ich bin hier sicher nicht der einzige C-Neuling, deshalb habe ich das ganze Schritt für Schritt aufgeschrieben, damit man es besser nachvollziehen kann.
Hier das Listing (erstellt in MS Windows + Dev-C++ 4.9.8.7):
Was ist an diesem Listing falsch?
Für eure Hilfe bedanke ich mich im voraus.
Schönen Abend noch...
ich lerne gerade C und hätte eine Frage zu der Funktion rand:
Das Programm sollte eine Zufallszahl zwischen 1 und 10 erzeugen, schön und gut, aber es erzeugt immer die gleiche Zahl (die Zahl 1). Das ist ja nicht der Sinn und Zweck der Sache.
Die Bedingung für das Spiel lautet:
1. Man hat max. 3 Versuche (count != 3), in denen man die Zahl erraten muss.
2. Solange die Variable von erraten auf dem Wert 0 UND den Zähler für die Versuche count noch nicht auf 3 stehen, beginnt der Anweisungsblock wieder von neuem.
3. Ist eine dieser Bedingungen unwahr, hat man entweder die Zahl erraten oder mehr als drei Versuche benötigt. Dies wird anschliessend nach dem Anweisungsblock ausgewertet.
Ich bin hier sicher nicht der einzige C-Neuling, deshalb habe ich das ganze Schritt für Schritt aufgeschrieben, damit man es besser nachvollziehen kann.
Hier das Listing (erstellt in MS Windows + Dev-C++ 4.9.8.7):
Code:
#include <stdio.h>
#include <stdlib.h> /* für rand() */
int main()
{
int ratezahl, count=0, erraten=0;
int zufall=rand()%10; /* Pseudo-Zufallszahl von 1-10*/
do{ /* Start der do while Schleife */
printf("Zahleingabe bitte (1-10): ");
scanf("%d", &ratezahl);
if(ratezahl==zufall) /*Zahl richtig geraten? */
{
erraten=1; /* Ja die Zahl ist richtig */
count++;
}
else
{
(ratezahl>zufall) ? printf("kleiner\n") : printf("grösser\n");
count++;
}
}while( (erraten != 1) && (count != 3) );
if(erraten == 0)
{
printf("Sie haben 3 Chancen vertan ;) \n");
printf("Die Zahl wäre %d gewesen: \n", zufall);
}
else
printf("Mit %d Versuchen erraten!\n",count);
system("pause");
return 0;
}
Was ist an diesem Listing falsch?
Für eure Hilfe bedanke ich mich im voraus.
Schönen Abend noch...
Zuletzt bearbeitet: