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

Kurs C++ odc 11- praca domowa (Prośba o sprawdzenie)

Mały hosting, OGROMNE możliwości
0 głosów
244 wizyt
pytanie zadane 22 sierpnia 2016 w C i C++ przez lechu3333 Nowicjusz (120 p.)

Witam kolegów oraz koleżanki!
Jako iż zacząłem całkiem niedawno moje "programowanie", proszę was programistów o ocenę mojej pracy domowej z odc.11 kursu c++ i napisaniu czy wszystko co napisałem jest w porządku.
Za pomoc z góry dziękuje :)

#include <iostream>
#include <cmath>

using std::cout;
using std::endl;
using std::cin;

int main()
{
    float liczba[5], odleglosc[5], srednia, m, suma, najblizsza;
    cout << "Podaj 5 liczb:" << endl;
    cin >>liczba[0];
    cin >>liczba[1];
    cin >>liczba[2];
    cin >>liczba[3];
    cin >>liczba[4];
    for(int i=0; i<=4; i++)
    {
        suma+=liczba[i];
        srednia=suma/5;
    }
    cout <<"Srednia: "<<srednia<<endl;
    for(int i=0; i<=4; i++)
    {
        odleglosc[i]=fabs(srednia-liczba[i]);
    }

    m=odleglosc[0];
    if(odleglosc[1]<=m){m=odleglosc[1]; najblizsza=liczba[1];}
    if(odleglosc[2]<=m){m=odleglosc[2]; najblizsza=liczba[2];}
    if(odleglosc[3]<=m){m=odleglosc[3]; najblizsza=liczba[3];}
    if(odleglosc[4]<=m){m=odleglosc[4]; najblizsza=liczba[4];}

    cout <<"Najblizsza odleglosc do sredniej ma liczba: "<<najblizsza;

    return 0;
}


 

1 odpowiedź

+3 głosów
odpowiedź 22 sierpnia 2016 przez criss Mędrzec (172,570 p.)
    cin >>liczba[0];
    cin >>liczba[1];
    cin >>liczba[2];
    cin >>liczba[3];
    cin >>liczba[4];

Dlaczego nie w pętli?

Linia 20:

srednia=suma/5;

Dlaczego to jest w pętli? W ogóle zmienna suma jest niepotrzebna. Możesz wszystko wrzucać do sredniej i na koniec dzielić ją przez 5.

Tablica odleglosc niepotrzebna. W ogóle cała reszta jest źle napisana. Odsyłam cie tutaj bo to właściwie ta sama sprawa. 

edit:

Chociaż w sumie.. nie do końca ta sama.

m=odleglosc[0];
    if(odleglosc[1]<=m){m=odleglosc[1]; najblizsza=liczba[1];}
    if(odleglosc[2]<=m){m=odleglosc[2]; najblizsza=liczba[2];}
    if(odleglosc[3]<=m){m=odleglosc[3]; najblizsza=liczba[3];}
    if(odleglosc[4]<=m){m=odleglosc[4]; najblizsza=liczba[4];}

Widać, że myślisz dobrze, ale spróbuj to zrobić w pętli, a odleglosc liczyc na bieżąco - nie potrzebujesz mieć zapisanych wszystkich na raz.

Podobne pytania

0 głosów
1 odpowiedź 247 wizyt
pytanie zadane 13 października 2016 w C i C++ przez KamilGG Użytkownik (690 p.)
0 głosów
1 odpowiedź 335 wizyt
pytanie zadane 7 stycznia 2017 w C i C++ przez Arkadiusz Kruk Nowicjusz (120 p.)
0 głosów
1 odpowiedź 711 wizyt
pytanie zadane 26 stycznia 2018 w C i C++ przez jezyk2796 Nowicjusz (150 p.)

93,695 zapytań

142,614 odpowiedzi

323,225 komentarzy

63,228 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...