Napisz program obliczający średnią arytmetyczną dla wprowadzonych ocen (zakres od 1 – 6). Zakończeniem wprowadzania ocen będzie podanie wartości 0. Po obliczeniu średniej program wypisuje ile poszczególnych ocen zostało wprowadzonych i wypisuje ich średnią arytmetyczną.
Ogólnie to program mi działa, ale mam problem, z wczytywaniem liczb. Program powinien wczytywać tylko liczby całkowite więc gdy podam liczbę np 2.5 program się sypie. I tu moje pytanie, jak napisać warunek aby liczby były tylko całkowite.
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Nie da się . Nie da się zrobić to wczytując liczby całkowite ... zmarnowałem na to ponad godzinę aby zrobić funkcję i jakimś cudem to sprawdzić ale NEI MA TKAIEJ MOŻLIWOŚCI .
Jedynie można wczytywać STRINGA i sprawdzać czy jest tam kropka jeżeli tak błąd , jeżeli nie konwersja do INT .
W innym przypadku pozostaje wczytanie liczby FLOAT lub DOUBLE i użycie tego :
bez_przecinka = static_cast<int>(z_przecinkiem)
I tutaj się przyda stara, dobra funkcja "scanf" (wykorzystamy fakt, że zgodnie z dokumentacją, funkcja ta zwraca ilość pobranych poprawnych argumentów):
#include <cstdio>
int main()
{
int errorcode;
unsigned int sum=0, count=1, value;
while ((errorcode=scanf("%i", &value)) != 0)
{
if (value == 0)
break;
sum += value;
count++;
}
if (errorcode == 0)
printf("Podales cos, co nie jest liczba naturalna!"); else
printf("\n%f", (double)(sum/(count-1)));
return errorcode;
}