dokładanie lub usuwanie ilości ocen
Ostatnio zmodyfikowano 2017-03-09 12:35
Tropicca Temat założony przez niniejszego użytkownika |
» 2017-03-09 10:41:42 dzięki wszystkim ! :D rozwiązałem sobie to pisząc wszystko od nowa ( dla zainteresowanych kod niżej ) #include <iostream> #include <windows.h>
using namespace std;
float x, y, suma = 0, srednia, oceny;
int main() { cout << "Witaj w programie do liczenia sredniej (pamietaj jesli masz ocene typu 4- jest to 3.75 zas 4+ bedzie 4.5)" << endl; cout << "Ile ocen chcesz wprowadzic? :"; cin >> x; for( int i = 0; i < x; i++ ) { cout << endl << "Podaj " << i + 1 << " Ocene:"; cin >> oceny; suma += oceny; } cout << endl; srednia = suma / x; { cout << "Z tego wynika ze twoja srednia to :" << srednia << endl; cout << endl; if( srednia <= 3.9 ) cout << "No chyba musisz sie podciagnac" << endl; else if(( srednia >= 4 ) &&( srednia <= 5.4 ) ) cout << "No no , calkiem niezle ;)" << endl; if( srednia >= 5.5 ) cout << "WSPANIALE ! RODZICE MUSZA BYC DUMNI" << endl; } system( "pause" ); return 0; }
|
|
mateczek |
» 2017-03-09 11:05:37 #include <iostream> using namespace std;
int main() { int ilosc = 0; int suma = 0; int ocena; while( true ) { cout << "podaj ocene" << endl; cin >> ocena; suma += ocena; ilosc++; if( ilosc ) cout << "srednia= " << double( suma ) / ilosc << endl; } }
|
|
Tropicca Temat założony przez niniejszego użytkownika |
» 2017-03-09 12:12:53 srednia zawsze moze byc po przecinku , prawda ;) ? |
|
Anim |
» 2017-03-09 12:35:34 Myślę, że @mateczek zaproponował Tobie po prostu lepsze rozwiązanie :) Przede wszystkim bez zmiennych globalnych, a po drugie takie, które nie wymaga wielkiej interakcji z użytkownikiem. Dzięki pętli while, którą zaproponował mateczek nie musisz z góry wiedzieć ile masz ocen ;p wprowadzasz tak długo, jak masz potrzebę (czyli do momentu, gdy wprowadzona ocena jest poprawna) :) Jedyny mankament to taki, że poprzez deklarację oceny jako int nie można wprowadzać danych zmiennoprzecinkowych, ale można to zmienić deklarując od razu typ float/double, i faktycznie można pominąć rzutowanie na końcu (według mnie kwestia konwencji programowania - aczkolwiek nie jestem pewien co jest bardziej poprawne). Poza tym to rozwiązanie, które zaproponował @mateczek nie działa do końca poprawnie ^^, ale szybko można je poprawić, np.: #include <iostream> using namespace std;
int main() { int ilosc = 0; double suma = 0; double ocena = 1; while( true ) { cout << "podaj ocene (z przedzialu 1-6)" << endl; cin >> ocena; if( ocena >= 1 && ocena <= 6 ) { suma += ocena; ilosc++; } else { break; } } if( ilosc ) cout << "srednia= " << suma / ilosc << endl; }
Aczkolwiek, w związku z tym, że dopiero zaczynasz, to uważam, że Twój kod jest w porządku :) Sam w ramach doświadczenia zaczniesz stosować w pewnym momencie lepsze rozwiązania :) |
|
1 2 « 3 » |