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

bledne wyniki sredniej artymetycznej

42 Warsaw Coding Academy
0 głosów
363 wizyt
pytanie zadane 22 lipca 2015 w C i C++ przez heartagram Obywatel (1,770 p.)
cześć, w programie do średniej artymetycznej nie wychodzi mi za nic właściwy wynik a powinien : |

 

#include <iostream>

using namespace std;

unsigned srednia(unsigned suma, unsigned liczba, unsigned n)
{
    cout<<"Podaj ile liczb do sredniej"<<endl;
    cin>>n;
for(unsigned i=1; i<=n; i++)
{
    cout<<"Podaj "<<i<<" liczbe"<<endl;
    cin>>liczba;
    suma+=liczba;
}

cout<<"srednia wynosi: "<<suma/n<<endl;

}
int main()
{
unsigned suma;
unsigned liczba;
unsigned n;
cout<<srednia(suma,liczba,n);      // mimo iż dobre typy zmiennych to wynik po przecinku też nie wychodzi dobry
cout<<" <-- nie wiem co to O.O"<<endl;   // tutaj po zakończonym programie wyskakują mi jakieś dziwne cyfry
return 0;

}

 

W zakomentowanych miejscach jest jeszcze pare pytań :)

4 odpowiedzi

0 głosów
odpowiedź 22 lipca 2015 przez Lucek1906 Nowicjusz (240 p.)
Po pierwsze średnia najczęściej będzie wychodzić jako liczba lub cyfra zmienno przecinowa. Zastanów się nad typem zmiennej.

Po wtóre "unsigned" dodajesz przed nazwą zmiennej np "unsigned long" oznacza to że zakres zmiennej przesunie sie i będzie liczony od zera w górę.

Tak w ogóle to chyba masz źle napisaną funkcję "srednia" - chodzi mi o typ, no a poza tym skoro to nie jest "VOID" to powinna zwracać jakąś wartość.

 

 

zachęcam do zapoznania się z : http://www.algorytm.edu.pl/wstp-do-c/typy-zmiennych.html

oraz https://www.youtube.com/watch?v=HHplT1A4_A4
0 głosów
odpowiedź 22 lipca 2015 przez TurboSpencer Początkujący (260 p.)

Źle napisałeś funkcję srednia, jeśli funkcja ma coś zwracać to zamiast cout napisz return.  Zmienne suma, liczba i n powinny być nad funkcją srednia. Po drugie przed unsigned musisz podac typ zmiennej, a najlepiej zamiast unsigned wpisz po prostu int. Najlepiej by było jakbyś to obejżał: https://www.youtube.com/watch?v=HHplT1A4_A4

0 głosów
odpowiedź 22 lipca 2015 przez Dorion300 Szeryf (90,250 p.)

Nie wiem czy o to ci chodziło.

Ale działa.

#include <iostream>

using namespace std;

void srednia()
{
    double liczba;
    unsigned int n;
    double suma;
    cout<<"Podaj ile liczb do sredniej"<<endl;
    cin>>n;
    for(unsigned i=1; i<=n; i++)
    {
        cout<<"Podaj "<<i<<" liczbe"<<endl;
        cin>>liczba;
        suma+=liczba;
    }

    cout<<"srednia wynosi: "<<suma/n<<endl;

}
int main()
{
    srednia();      // mimo iż dobre typy zmiennych to wynik po przecinku też nie wychodzi dobry
    cout<<" <-- nie wiem co to O.O"<<endl;   // tutaj po zakończonym programie wyskakują mi jakieś dziwne cyfry
    return 0;

}

 

0 głosów
odpowiedź 22 lipca 2015 przez adas94 Nałogowiec (29,200 p.)

Tutaj masz działający kod, trochę źle napisałeś swoją funkcję : 

 

#include <iostream>

using namespace std;

double srednia ()
{
    int n;
    double liczba;
    double suma=0;
    cout<<"Podaj ile liczb do sredniej"<<endl;
    cin>>n;
    
    for(int i=1; i<=n; i++)
    {
    cout<<"Podaj "<<i<<" liczbe"<<endl;
    cin>>liczba;
    suma+=liczba;
    }

    return suma/n;
}

int main()
{
    cout<<" średnia wynosi : "<< srednia() << endl;
    return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 1,275 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez Furgix Początkujący (480 p.)
0 głosów
2 odpowiedzi 475 wizyt
+1 głos
3 odpowiedzi 777 wizyt

93,389 zapytań

142,385 odpowiedzi

322,547 komentarzy

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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...