Witam, mam problem z programem typu Zgadnij liczbę. Losuje on sobie liczbę, aczkolwiek wyrzuca mi naraz wszystkie komunikaty.
Program:
Witam, mam problem z programem typu Zgadnij liczbę. Losuje on sobie liczbę, aczkolwiek wyrzuca mi naraz wszystkie komunikaty.
Program:
Po if`ach masz średniki.
Formatowanie, formatowanie i jeszcze raz formatowanie!
Poza tym wklejaj tu kod bezpośrednio, nie rób screenshotów.
Tutaj Twój kod sformatowany jak być powinno
int main(void)
{
int a;
int liczba;
srand(time(NULL));
rand() % 1000 + 1;
for (a = 1; a < 1000; a++)
{
a = (rand() % 1000) + 1;
printf("\nPodaj liczbe od 1 do 1000\n");
scanf("%d", &liczba);
if (liczba < a);
{
printf("Za malo\n");
}
if (liczba > a);
{
printf("Za duzo");
}
}
}
A teraz przechodząc do pytań, po if'ach masz średniki dlatego te ify nic tak na prawdę nie robią.
Ta linia:
rand() % 1000 + 1;
Również nic nie robi bo nigdzie nie przypisujesz wartości.
Poniższy for jest bez sensu
for (a = 1; a < 1000; a++)
{
a = (rand() % 1000) + 1;
...
}
Bo wartość losową przypisujesz do pętli która ma się wykonać 1000 razy. Ale nie wiadomo ile razy tak naprawdę się wykona bo zmieniasz a.
Ok, dzieki. ale teraz automatycznie zamyka program zanim odgadne liczbe
Jak chcesz zrobić żeby powtarzało dopóki użytkownik nie zgadnie liczby do zrób coś takiego:
int main(void)
{
srand(time(NULL));
int guess;
int target = rand() % 1000 + 1;
do
{
printf("\nPodaj liczbe od 1 do 1000\n");
scanf("%d", &guess);
if (guess < target);
{
printf("Za malo\n");
}
if (guess > target);
{
printf("Za duzo");
}
} while (guess != target); // Dopóki użytkownik nie zgadł liczby
printf("Udalo sie!");
}
Ja ogólnie poleciłbym to zrobić w wszystko w While:
randomNumber = rand() % 1000 + 1;;
printf("\nPodaj liczbe od 1 do 1000\n");
scanf("%d", &checkingNumber);
while(checkingNumber!= randomNumber){
//tutaj dwa ify
}
Ok.
Dziekuje bardzo za pomoc :) Dopiero sie ucze i jeszcze tego wszystkiego nie ogarniam..
@PanRiK:
Ale wtedy masz
printf("\nPodaj liczbe od 1 do 1000\n");
scanf("%d", &guess);
while (guess != target)
{
if (guess < target) { ... }
if (guess > target) { ... }
if (guess == target) break; // Bo nie chcemy aby komunikat o ponownej probie się wyświetlił
printf("\nNie udalo sie. Sprobuj jeszcze raz \n");
scanf("%d", &guess);
}