Mam problem w rozwiązaniu zadania:
Wczytuj kolejne liczby całkowite z klawiatury. Zakończ wczytywanie gdy użytkownik wprowadzi liczbę ujemną. Wypisz na ekran średnią arytmetyczną wszystkich wprowadzonych liczb nieujemnych.
To jest moje rozwiązanie:
#include <iostream>
using namespace std;
int main()
{
int x, suma, ilosc;
double srednia;
ilosc = 0;
suma = 0;
do
{
cout<< "Wpisz liczbe calkowita: " << endl;
cin>> x;
if (x>=0)
suma += x;
ilosc++;
srednia=suma/ilosc;
}
while (x>=0);
cout<< "Srednia arytmetyczna liczb nieujemnych: " << srednia << endl;
system("pause");
return 0;
}
Wynik wychodzi mi zły i nie wiem gdzie jest błąd. Nie widzę też różnicy w kolejności 16 i 17 wiersza (suma i ilość), a jeśli zamienię je ze sobą dostaję różne wyniki. Na przykład, w powyższej wersji, jeśli wpisuję liczby: 10, 5, 5, 20, -10 otrzymuję wynik 8. Jeśli zamienię wiersz 16 i 17, wynik jest 7.
Proszę o pomoc i z góry dziękuję.
[C++] średnia arytmetyczna liczb nieujemnych
Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
-
- Stały bywalec
- Posty: 571
- Rejestracja: 03 gru 2011, 10:43
- Podziękowania: 388 razy
- Otrzymane podziękowania: 7 razy
- Płeć:
Re: [C++] średnia arytmetyczna liczb nieujemnych
#include <iostream>
using namespace std;
int main()
{
int x, suma, ilosc;
double srednia;
ilosc = 0;
suma = 0;
do
{
cout<< "Wpisz liczbe calkowita: " << endl;
cin>> x;
if (x>=0)
{
suma += x;
ilosc++;
}
} while (x>=0);
srednia= (double)suma/ilosc; // zeby wynik byl zmiennoprzecinkowa, jedna z liczb musi byc tego typu
cout<< "Srednia arytmetyczna liczb nieujemnych: " << srednia << endl;
system("pause");
return 0;
}
using namespace std;
int main()
{
int x, suma, ilosc;
double srednia;
ilosc = 0;
suma = 0;
do
{
cout<< "Wpisz liczbe calkowita: " << endl;
cin>> x;
if (x>=0)
{
suma += x;
ilosc++;
}
} while (x>=0);
srednia= (double)suma/ilosc; // zeby wynik byl zmiennoprzecinkowa, jedna z liczb musi byc tego typu
cout<< "Srednia arytmetyczna liczb nieujemnych: " << srednia << endl;
system("pause");
return 0;
}
Re: [C++] średnia arytmetyczna liczb nieujemnych
Czyli problem był tylko w tym, że nie wpisałam tam double, tak? Bo to, że to działanie włożyłam do pętli, chyba nie ma znaczenia, zgadza się?
Re: [C++] średnia arytmetyczna liczb nieujemnych
A, jeszcze zapomniałam o nawiasie po if. Dobra, już rozumiem