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

Cloud VPS
0 głosów
199 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ź 200 wizyt
pytanie zadane 13 października 2016 w C i C++ przez KamilGG Użytkownik (690 p.)
0 głosów
1 odpowiedź 273 wizyt
pytanie zadane 7 stycznia 2017 w C i C++ przez Arkadiusz Kruk Nowicjusz (120 p.)
0 głosów
1 odpowiedź 659 wizyt
pytanie zadane 26 stycznia 2018 w C i C++ przez jezyk2796 Nowicjusz (150 p.)

93,488 zapytań

142,422 odpowiedzi

322,773 komentarzy

62,908 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

Kursy INF.02 i INF.03
...