[C++] Średnia arytmetyczna z dokładnością do 2 miejsc po przecinku
Ostatnio zmodyfikowano 2012-11-04 11:54
stokrotka Temat założony przez niniejszego użytkownika |
[C++] Średnia arytmetyczna z dokładnością do 2 miejsc po przecinku » 2012-11-04 03:17:07 Cześć! Mam problem z kodem do takiego zadania: Obliczyć śr. arytmetyczna ciągu liczb naturalnych zakończonego zerem, z dokładnością do 2 miejsc po przecinku, zaokraglając z dół. Zera nie wliczamy do średniej. Wypisać dwie liczby (oddzielone pojedynczym odstępem). Pierwsza oznacza liczbę przed przecinkiem, a druga liczbę za przecinkiem. Na przykład średnia arytmetyczna liczb 4, 5, 8 wynosi 17/3 = 5.6666. Po obcięciu do dwóch miejsc za przecinkiem, otrzymujemy liczbę 5.66. W konsekwencji, prawidłowa odpowiedź to dwie liczby "5 66". Jeśli na przykład średnia wynosi 5.6, to powinieneś wypisać "5 60", a jeśli średnia to 5.06, to powinieneś wypisać "5 6". Napisałam do tego program, ale niestety coś w nim nie działa poprawnie, bo internetowa sprawdzaczka mi tego nie przyjmuje. Czy ktoś widzi co robię źle? #include <iostream> #include <cstdlib> #include <iomanip> #include <math.h>
using namespace std;
int main() { unsigned int n; int suma = 0; int m = 0; double z; while( n != 0 ) { cin >> n; suma = suma + n; m++; } z =( double ) suma /( m - 1 ); cout.precision( 2 ); double calkowita; double ulamkowa = modf( z, & calkowita ); cout.precision( 0 ); cout << fixed << calkowita << " " << floor( ulamkowa * 100 ) << endl; system( "pause" ); return 0; } |
|
DejaVu |
» 2012-11-04 03:29:24 void obliczOrazWypiszSrednia( int iSumaLiczb, int iIleLiczb ) { long iWynik =( iSumaLiczb * 100 ) / iIleLiczb; printf( "%d %d\n", iWynik / 100, iWynik % 100 ); }
|
|
stokrotka Temat założony przez niniejszego użytkownika |
» 2012-11-04 11:54:58 Sprawdzaczka przyjęła :) Wielkie dzięki za pomoc! |
|
« 1 » |