Zliczanie przebiegów pętli while


(As Pikowy) #1

Mam taki kod i musze go zmodyfikować tak, żeby program wyświetlał ilość prób odgadnięcia liczby.

#include 

#include 

#include 

int main()

{

// wylosowanie liczby

srand ((int) time(NULL));

int nWylosowana = rand() % 100 + 1;

std::cout << "Wylosowano liczbe z przedzialu 1-100." << std::endl;

// pierwsza próba odgadnięcia liczby

int nWprowadzona;

std::cout << "Sprobuj ja odgadnac: ";

std::cin >> nWprowadzona;

// kolejne próby, aż do skutku - przy użyciu pętli while

while (nWprowadzona != nWylosowana)

{


if (nWprowadzona < nWylosowana)

std::cout << "Liczba jest zbyt mala.";

else

std::cout << "Za duza liczba.";

std::cout << " Sprobuj jeszcze raz: ";

std::cin >> nWprowadzona;


}

std::cout << "Celny strzal :) Brawo!" << std::endl;

getch();

}

(Fiołek) #2

A problem masz z...? Tutaj zadań domowych się nie rozwiązuje. Sprecyzuj czego nie wiesz, co Ci nie wychodzi czy jakie błędy masz.

(hint: licznik)


(Marekglapa) #3

Tworzysz na początku funkcji main zmienną

int licznik=0;

a potem pod koniec pętli (przed ostatnim "}") wpisujesz

licznik++;

i wsio.


(As Pikowy) #4

Dzięki!!


(Damgora) #5

do tego jest pętla for :stuck_out_tongue:

int licznik;

for(licznik = 0; nWprowadzona != nWylosowana; licznik++){

	//...

}

(Masterslynx) #6

Ja zawsze w każdym projekcie jadę na while, tak jest prościej i sam kontrolujesz wszystko co się dzieje. Jeśli nie jesteś "nowym" to nie będziesz miał problemów z przewidywaniem działania takich, nawet bardzo rozbudowanych pętli. Wystarczy pamiętać o break.


(somekind) #7

Używanie break jest samo przez się trochę nieeleganckie, to tylko takie trochę inne goto.

Za to bardzo nieeleganckie jest używanie jednej pętli zamiast drugiej. Gdy znamy liczbę przebiegów należy stosować for, a gdy jej nie znamy while, wszelkie kombinowanie zmniejsza tylko czytelność kodu.