Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Obliczanie średniej ucznia

Ostatnio zmodyfikowano 2011-12-16 20:50
Autor Wiadomość
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?

C/C++
#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ę.
P-45690
pekfos
» 2011-12-16 16:14:30
zamiast cout<<fixed<<setprecision()<<srednia
daj to:
C/C++
int srednia;
//..
srednia = round( srednia * 100 ) / 100.0f;
cout << srednia;
P-45691
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.
P-45695
pekfos
» 2011-12-16 16:58:22
Heh, mały błąd..
C/C++
#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?
P-45696
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?

C/C++
#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;
}
P-45697
pekfos
» 2011-12-16 19:49:26
C/C++
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.
P-45703
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! :)
P-45707
« 1 »
  Strona 1 z 1