[C++] Obliczanie średniej ucznia
Ostatnio zmodyfikowano 2011-12-16 20:50
Glazik Temat założony przez niniejszego użytkownika |
[C++] Obliczanie średniej ucznia » 2011-12-16 15:29:13 Witam! Na jutro potrzebuję prosty program na zaliczenie, ktory ma obliczac srednia ocen ucznia. Niestety jakkolwiek nie ustawilbym wyniku obliczen, zawsze wyswietlany wynik ma po przecinku 00 zamiast innej wartosci. Czy ktos moglby mi powiedziec co mam nie tak?
#include <iostream> #include <iomanip> using namespace std; int j, d, t, cz, p, sz; float srednia;
main() { cout << "Program policzy srednia ocen ucznia. \n"; cout << "Podaj kolejno ilosc ocen, o ktore zapytam: \n"; do { cout << "Ile jedynek ma uczen? "; cin >> j; } while( j < 0 ); do { cout << "Ile dwojek ma uczen? "; cin >> d; } while( d < 0 ); do { cout << "Ile trojek ma uczen? "; cin >> t; } while( t < 0 ); do { cout << "Ile czworek ma uczen? "; cin >> cz; } while( cz < 0 ); do { cout << "Ile piatek ma uczen? "; cin >> p; } while( p < 0 ); do { cout << "Ile szostek ma uczen? "; cin >> sz; } while( sz < 0 ); srednia =(( j * 1 ) +( d * 2 ) +( t * 3 ) +( cz * 4 ) +( p * 5 ) +( sz * 6 ) ) /( j + d + t + cz + p + sz ); cout << "Srednia ocen tego ucznia wynosi: " << fixed << setprecision( 2 ) << srednia; return 0; }
Z góry dziękuję. |
|
pekfos |
» 2011-12-16 16:14:30 zamiast cout<<fixed<<setprecision()<<srednia daj to: int srednia;
srednia = round( srednia * 100 ) / 100.0f; cout << srednia;
|
|
Glazik Temat założony przez niniejszego użytkownika |
» 2011-12-16 16:55:20 Dodałem biblioteke <math.h> i zamieniłem to co wspomniałeś, ale teraz każdy wynik wynosi -16916480. Jeśli zamienię zaś początkowe 'float srednia;' na 'int srednia' a potem wkleje tylko koncowke kodu podanego przez Ciebie, program podaje tylko w liczbach calkowitch. |
|
pekfos |
» 2011-12-16 16:58:22 Heh, mały błąd.. #include <iostream> #include <cmath> using namespace std;
int main() { double srednia = 62.123456; srednia = round( srednia * 100 ) / 100.0f; cout << srednia; } A to działa? |
|
Glazik Temat założony przez niniejszego użytkownika |
» 2011-12-16 17:33:25 Dziwna sprawa. Twój kod w osobnym programie oczywiście działa. Niestety po wklejeniu go w mój program, nadal otrzymuję liczby całkowite. Może źle to robie? #include <iostream> #include <cmath> using namespace std; int j, d, t, cz, p, sz; double srednia;
main() { cout << "Program policzy srednia ocen ucznia. \n"; cout << "Podaj kolejno ilosc ocen, o ktore zapytam: \n"; do { cout << "Ile jedynek ma uczen? "; cin >> j; } while( j < 0 ); do { cout << "Ile dwojek ma uczen? "; cin >> d; } while( d < 0 ); do { cout << "Ile trojek ma uczen? "; cin >> t; } while( t < 0 ); do { cout << "Ile czworek ma uczen? "; cin >> cz; } while( cz < 0 ); do { cout << "Ile piatek ma uczen? "; cin >> p; } while( p < 0 ); do { cout << "Ile szostek ma uczen? "; cin >> sz; } while( sz < 0 ); srednia =(( j * 1 ) +( d * 2 ) +( t * 3 ) +( cz * 4 ) +( p * 5 ) +( sz * 6 ) ) /( j + d + t + cz + p + sz ); srednia = round( srednia * 100 ) / 100.0f; cout << "Srednia ocen tego ucznia wynosi: " << srednia; return 0; }
|
|
pekfos |
» 2011-12-16 19:49:26 srednia =(( j * 1 ) +( d * 2 ) +( t * 3 ) +( cz * 4 ) +( p * 5 ) +( sz * 6 ) ); sredina /=( j + d + t + cz + p + sz ); //edit: lub zmień zmień typy ocen na double/float. |
|
Glazik Temat założony przez niniejszego użytkownika |
» 2011-12-16 20:50:03 Nie wiem dlaczego, ale działa! Dziękuję Ci bardzo! :) |
|
« 1 » |