Problem z programem Zgadnij Liczbe\\ C

0

Witam, mam problem z programem typu Zgadnij liczbę. Losuje on sobie liczbę, aczkolwiek wyrzuca mi naraz wszystkie komunikaty.

Program:

0

Po if`ach masz średniki.

0

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.

0

Ok, dzieki. ale teraz automatycznie zamyka program zanim odgadne liczbe

0

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!");
}
0

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
}
       
0

Ok.
Dziekuje bardzo za pomoc :) Dopiero sie ucze i jeszcze tego wszystkiego nie ogarniam..

0

@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);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1