• 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.

Object Storage Arubacloud
0 głosów
654 wizyt
pytanie zadane 8 czerwca 2018 w C i C++ przez Paweł123 Nałogowiec (33,500 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 784 wizyt
0 głosów
2 odpowiedzi 662 wizyt
+1 głos
1 odpowiedź 551 wizyt

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...