Witam mam problem z następującym zadaniem:
"Napisz program, który pobiera liczby całkowite do momentu wpisania przez użytkownika cyfry 0. Po zakończeniu wczytywania danych wejściowych program powinien wyświetlić ilość wpisanych liczb parzystych (z wyłączeniem zera) i ich średnią wartość oraz ilość wpisanych liczb nieparzystych i ich średnią wartość"
Napisałem coś takiego:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main(void)
{
int a;
int parzyste = 0;
int nieparzyste = 0;
int suma_p = 0;
int suma_n = 0;
float srednia_p;
float srednia_n;
printf("Podaj ciag liczb\n");
while ((a = getchar()) != '0')
{
if ((a % 2) == 0)
{
suma_p = suma_p + a;
parzyste++;
}
else if ((a % 2) != 0)
{
suma_n = suma_n + a;
nieparzyste++;
}
}
if (nieparzyste != 0)
{
srednia_n = (suma_n / nieparzyste);
printf("Wpisales %d liczb nieparzystych\n", nieparzyste);
printf("Ich srednia to %.2f\n", srednia_n);
}
if (parzyste != 0)
{
srednia_p = (suma_p / parzyste);
printf("Wpisales %d liczb parzystych\n", parzyste);
printf("Ich srednia to %.2f", srednia_p);
}
getchar();
getchar();
return 0;
}
Program źle wypisuje średnie wartości. Np. po wpisaniu liczb 1234567890 otrzymuje taki napis:
Wpisales 5 liczb nieparzystych
Ich srednia to 53.00
Wpisales 4 liczb nieparzystych
Ich srednia to 53.00
Zupełnie nie wiem czemu otrzymuję taki dziwny wynik.