Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wybór najmniejszej i największej liczby po zakończeniu pętli zerem "0"

Ostatnio zmodyfikowano 2012-11-29 07:49
Autor Wiadomość
lhrrob
Temat założony przez niniejszego użytkownika
Wybór najmniejszej i największej liczby po zakończeniu pętli zerem "0"
» 2012-11-28 10:48:59
Witam

"Program ma za zadanie pobierać od użytkownika kolejne liczby rzeczywiste tak długo,
aż poda on liczbę 0, po czym należy wyświetlić ile liczb zostało podanych (nie licząc 0),
ich sumę, średnią, liczbę największą i najmniejszą."

Nie potrafię obejść tego "0" i program za każdym razem je pokazuje jako najmniejszą wpisaną.
Proszę Was o pomoc jak rozwiązać ten problem. Z góry dziękuję za pomoc.
Oto fragment kodu:

C/C++
void licz()
{
    float mini = 0, maks = 0, suma = 0, liczba = 0;
    int licznik = 0;
   
    cout << "Podaj dowolny ciag liczb: " << endl;
    do
    {
        cin >> liczba;
        licznik++;
        suma += liczba;
        if( licznik == 0 )
        {
            maks = mini = liczba;
        }
        else
        {
            if( liczba > maks )
                 maks = liczba;
           
            if( liczba < mini )
                 mini = liczba;
           
        }
    }
    while( liczba != 0 );
   
    cout << "Ilosc podanych liczb: " << licznik - 1 << endl;
    cout << "Suma tych liczb wynosi : " << suma << endl;
    cout << "Srednia tych liczb wynosi : " << suma /( licznik - 1 ) << endl;
    cout << "Najwieksza liczba wynosi : " << maks << endl;
    cout << "Najnizsza liczba wynosi : " << mini << endl;
}
P-70037
jsc
» 2012-11-28 11:01:35
Zamień pętle do-while na while i wczytywanie liczb umieść na końcu jej ciała i tuż przed nią.
P-70040
lhrrob
Temat założony przez niniejszego użytkownika
» 2012-11-28 11:15:29
Dzięki Ci za chęć pomocy. Próbowałem zrobić tak jak radzisz ale kod stracił poprzednie
funkcjonalności nie mówiąc już o liczbie minimalnej :) ehh...
P-70043
jsc
» 2012-11-28 11:27:40
Możesz zamieścić to co próbowałeś?
P-70045
lhrrob
Temat założony przez niniejszego użytkownika
» 2012-11-28 11:36:46
hm... teraz fajnie pokazuje najwiekszą i najmniejszą ale coś nie pokazuje sumy i średniej

C/C++
void licz()
{
    float mini = 0, maks = 0, suma = 0, liczba = 0;
    int licznik = 0;
   
    cout << "Podaj dowolny ciag liczb: " << endl;
   
    cin >> liczba;
    while( liczba != 0 )
    {
        if( licznik == 0 )
        {
            maks = mini = liczba;
        }
        else
        {
            if( liczba > maks )
                 maks = liczba;
           
            if( liczba < mini )
                 mini = liczba;
           
        }
        cin >> liczba;
        suma += liczba;
        licznik++;
    }
   
    cout << "Ilosc podanych liczb: " << licznik << endl;
    cout << "Suma tych liczb wynosi : " << suma << endl;
    cout << "Srednia tych liczb wynosi : " << suma /( licznik - 1 ) << endl;
    cout << "Najwieksza liczba wynosi : " << maks << endl;
    cout << "Najnizsza liczba wynosi : " << mini << endl;
}
P-70046
krzyk
» 2012-11-28 11:52:55
taka sobie moja wersja.

C/C++
void licz()
{
    float mini = 9999.0 /*maxymalna*/, maks = - 9999.0 /*minimalna*/, suma = 0, liczba = 0;
    int licznik = 0;
   
    cout << "Podaj dowolny ciag liczb: " << endl;
    while( 1 )
    {
        cin >> liczba;
        if( liczba == 0 )
             break;
       
        licznik++;
        suma += liczba;
        if( liczba > maks )
             maks = liczba;
       
        if( liczba < mini )
             mini = liczba;
       
    }
   
    cout << "Ilosc podanych liczb: " << licznik << endl;
    cout << "Suma tych liczb wynosi : " << suma << endl;
    cout << "Srednia tych liczb wynosi : " << suma /( licznik ) << endl;
    cout << "Najwieksza liczba wynosi : " << maks << endl;
    cout << "Najnizsza liczba wynosi : " << mini << endl;
}
P-70047
jsc
» 2012-11-28 11:59:11
Chodzi mi o pętle:
C/C++
cin >> liczba;

while( liczba != 0 )
{
    licznik++;
    suma += liczba;
    if( liczba > maks )
         maks = liczba;
   
    if( liczba < mini )
         mini = liczba;
   
    cin >> liczba;
}
P-70049
krzyk
» 2012-11-28 12:05:42
@jsc
W sumie Twoje kung-fu jest lepsze od mojego:)
P-70050
« 1 » 2
  Strona 1 z 2 Następna strona