• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie domowe do C++ odc. 11: Znajdowanie największej liczby.

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
995 wizyt
pytanie zadane 8 czerwca 2018 w C i C++ przez Paweł123 Nałogowiec (33,540 p.)

Witam, wiem, że są odpowiedzi na tym forum związane z tematem który zadałem, ale nie rozumiem dlaczego tak się dzieje w moim programie.  

#include <iostream>

using namespace std;


double a,b,c,d,e,suma,srednia,m;

int main()
{

    cout << "Podaj 5 liczby rodzielone spacja: ";
    cin>>a>>b>>c>>d>>e;
    suma=a+b+c+d+e;
    srednia=suma/5;

    m=a;

    if(b>srednia) m=b;
    if(c>srednia) m=c;
    if(d>srednia)  m=d;
    if(e>srednia) m=e;
    cout<<"Srednia: "<<srednia<<endl;

    cout<<"Najblizej sredniej znajduje sie liczba "<<m;
    return 0;
}

Kiedy podaje liczby 1.5, 3.14, 7.5, 1.25, 3.42 wszystko działa dobrze, jednak kiedy podaje liczby -55, -44, -33, 11, 22 nie działa juz poprawnie. Otrzymuje inny wynik niż w odpowiedziach. 

Link do kursu

Może mi ktoś wytłumaczyć, dlaczego tak się dzieje? 

2 odpowiedzi

+1 głos
odpowiedź 8 czerwca 2018 przez k222 Nałogowiec (30,150 p.)
Może na początek decyduj się co chcesz zrobić - w temacie napisałeś "znajdowanie największej liczby", w programie jest "Najblizej sredniej znajduje sie" a w opisie nie ma nic o tym co jest źle, co to ma robić, itp.

Ale do rzeczy -- dla przypadku który "nie działa" - twój program najpierw liczy średnią (-55 + -44 + -33 + 11 + 22)/5 = -19, potem po kolei sprawdza czy wpisane liczby są większe od średniej:

-55 > -19 NIE
-44 > -19 NIE
-33 > -19 NIE
11 > -19 TAK   m = 11
22 > -19 TAK   m = 22

Wypisujemy 22.

Wszystko działa jak należy, więcej może ktoś pomoże jak doprecyzujesz co chcesz zrobić, bo na razie ten program szuka ostatniej wpisanej liczby która jest większa od średniej i taką też znajduje.
0 głosów
odpowiedź 8 czerwca 2018 przez adamus Użytkownik (860 p.)

Jeśli chodzi o znajdowanie najwiekszej liczby mozesz to zrobic w owiele prostszy sposob utworz petle for ktora bedzie wykonywala sie tak dluga ile chcesz podac liczb potem prostym warunkiem sprawdzasz:

if(i==0)
{
max=np.a;
min=a;
}
if(max>a)
max=a;
if(min<a)
min=a;

I to wszytsko musisz tylko liczby przypisac do jednej zmiennej.

Powodzenia

Podobne pytania

0 głosów
4 odpowiedzi 1,195 wizyt
0 głosów
2 odpowiedzi 972 wizyt
+1 głos
1 odpowiedź 876 wizyt

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...