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

Wartość średnia, maksymalna i minimalna.

Ostatnio zmodyfikowano 2016-01-19 21:48
Autor Wiadomość
adrianb
Temat założony przez niniejszego użytkownika
Wartość średnia, maksymalna i minimalna.
» 2016-01-19 19:38:22
Cześć,

Treść zadania: Wyznaczenie sredniej, najwiekszego oraz najmniejszego elementu dla N liczb wprowadzonych z klawiatury.
Mój program wypisuje wartość maksymalną i średnią liczb poprawnie, natomiast wartość minimalna zawsze równa jest 0... Dlaczego? Jakaś wskazówka?

C/C++
#include <iostream>
using namespace std;

int main()
{
    int suma = 0;
    int max = 0;
    int min = 0;
    double srednia = 0;
    int ilosc_liczb = 0;
    int liczba = 0;
   
   
    cout << "Ile liczb chcesz wprowadzic?" << endl;
    cin >> ilosc_liczb;
   
    for( int i = 0; i < ilosc_liczb; i++ )
    {
        cin >> liczba;
        suma += liczba;
       
        if( liczba > max )
        {
            max = liczba;
        }
       
        else if( liczba < min )
        {
            min = liczba;
        }
    }
   
    srednia = suma / ilosc_liczb;
   
    cout << "Najmniejsza liczba wynosi: " << min << endl;
    cout << "Najwieksza liczba wynosi: " << max << endl;
    cout << "Srednia arytmetyczna podanych liczb wynosi: " << srednia << endl;
   
    system( "PAUSE" );
   
}
P-143787
1aam2am1
» 2016-01-19 19:41:52
Wartość minimalna zawsze jest najmniejsza, więc do wartości minimalnej (int min = 0;) nie przypisuj zera tylko:
a) pierwszą liczbę wprowadzoną z klawiatury
b) wartość maksymalną inta
P-143788
adrianb
Temat założony przez niniejszego użytkownika
» 2016-01-19 19:52:11
@edit
już działa, dzięki za pomoc :)

C/C++
#include <iostream>
using namespace std;

int main()
{
    int suma = 0;
    int max;
    int min;
    double srednia = 0;
    int ilosc_liczb = 0;
    int liczba = 0;
   
   
    cout << "Ile liczb chcesz wprowadzic?" << endl;
    cin >> ilosc_liczb;
   
   
    for( int i = 0; i < ilosc_liczb; i++ )
    {
        min = liczba;
        max = liczba;
        cin >> liczba;
        suma += liczba;
       
        if( liczba < min )
        {
            min = liczba;
        }
       
        else if( liczba > max )
        {
            max = liczba;
        }
    }
   
    srednia = suma / ilosc_liczb;
   
    cout << "Najmniejsza liczba wynosi: " << min << endl;
    cout << "Najwieksza liczba wynosi: " << max << endl;
    cout << "Srednia arytmetyczna podanych liczb wynosi: " << srednia << endl;
   
    system( "PAUSE" );
   
}
P-143789
1aam2am1
» 2016-01-19 21:11:25
Nie to nie działa.
P-143791
adrianb
Temat założony przez niniejszego użytkownika
» 2016-01-19 21:25:27
Sprawdziłem i faktycznie nie działa, widocznie jakimś cudem 3 przypadki mi wyszły... Dlaczego? Jak zrobie
min = liczba = max;
 zamiast
min = liczba
 to też jest źle...
P-143793
carlosmay
» 2016-01-19 21:48:30
C/C++
min = liczba;
max = liczba;
cin >> liczba;
Nie ta kolejność. 'min' nadal jest równe 0.
P-143795
« 1 »
  Strona 1 z 1