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

[C++] Iloczyn liczb w ciągu

Ostatnio zmodyfikowano 2013-12-17 20:28
Autor Wiadomość
Awantura
Temat założony przez niniejszego użytkownika
[C++] Iloczyn liczb w ciągu
» 2013-12-12 09:45:36
Hejka, napisałem program, który będzie wczytywał z klawiatury ciąg liczb(jak podam 0, to nie prosi o kolejne liczby) Problem pojawia się, w momencie gdy obliczam iloczyn, zawsze wynosi on 0, oraz wartość najmniejsza też 0, jest to błedem.


C/C++
#include<iostream>


using namespace std;

int main() {
    int a = 1;
    int b = 0;
    int suma = 0;
    int srednia = 0;
    int iloczyn = 1;
    int najw = 0;
    int najm = 0;
    for( int i = 0; a != 0; ++i )
    {
        cout << "Podaj liczbe nr :";
        cin >> a;
        iloczyn *= a;
       
        if( a != 0 ) {
            ++b;
            suma += a;
            srednia = suma / b;
            iloczyn *= a;
           
            if( najw < a )
                 najw = a;
           
            if( najm > a )
                 najm = a;
           
        }
    }
   
    cout << "Podales " << b << " liczby" << endl;
    cout << "Suma liczb wynosi:" << suma << endl;
    cout << "Srednia liczb wynosi: " << srednia << endl;
    cout << "Iloczyn liczb wynosi: " << iloczyn << endl;
    cout << "Najwieksza liczba wynosi: " << najw << endl;
    cout << "Najmniejsza liczba wynosi: " << najm << endl;
    return 0;
}
P-99037
docentpp
» 2013-12-12 10:12:55
To mnożenie nalezy wykasować
C/C++
cout << "Podaj liczbe nr :";
cin >> a;
iloczyn *= a; // wykasować to mnożenie, bo dla a=0 wszystko sie zeruje

Zły algorytm wyznaczania min,
1) dla ciągu zawierającego liczby ujemne jest dobry,
2) dla ciągu >=0 zero kończy obliczenie, i jest jednocześnie minimum
   zalożonym na początku,co jest błędem.

P-99038
Awantura
Temat założony przez niniejszego użytkownika
» 2013-12-17 18:23:02
Wydaje mi się, że powinienem dodać coś takiego, ale nadal nie wychodzi ;/

&& a!=0
P-99462
pekfos
» 2013-12-17 18:28:50
Wywaliłeś wskazaną linię i poprawiłeś algorytm?
P-99467
Awantura
Temat założony przez niniejszego użytkownika
» 2013-12-17 19:25:16
Tak, poprawiłem.
P-99487
pekfos
» 2013-12-17 19:30:53
I działa? Jak nie, podaj kod i opisz problem.
P-99492
leon_w
» 2013-12-17 19:32:33
wg mnie działa dobrze. Tylko za najm podstawiasz "0", więc jeśli nie podasz minusowej, to najm = 0.
P-99493
Awantura
Temat założony przez niniejszego użytkownika
» 2013-12-17 19:36:55
Ale 0, ma być znacznikiem końca, a nie wartością ciągu ;/
P-99497
« 1 » 2 3
  Strona 1 z 3 Następna strona