mms1994 Temat założony przez niniejszego użytkownika |
Pomocy » 2011-02-04 11:50:40 Witam, dostałem na zadanie domowe z kółka, aby napisać program, który po otrzymaniu danych takich jak: liczba punktów maksymalna, liczba punktów zdobyta przez ucznia, policzy ile zdobył % oraz powie jaką powinien dostać ocenę. No ale niestety po podaniu potrzebnych danych, program sam się zamyka:
#include <iostream>
int main() { using std::cout; using std::cin; using std::endl; int ocena, punkty, wynik, procent; cout << "Podaj liczbe punktow, maksymalna do uzyskania: " << endl; cin >> punkty; cout << "Podaj liczbe punktow uzyskana przez ucznia: " << endl; cin >> wynik; procent = wynik / punkty * 100; if( procent == 100 ) { if( procent < 50 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: ndst" << endl; if( 50 <= procent <= 56 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: dop" << endl; if( 57 <= procent <= 63 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: dop+" << endl; if( 64 <= procent <= 70 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: dst" << endl; if( 71 <= procent <= 77 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: dst+" << endl; if( 78 <= procent <= 84 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: db" << endl; if( 85 <= procent <= 91 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: db+" << endl; if( 92 <= procent <= 98 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: bdb" << endl; if( 99 <= procent <= 100 ) cout << "Uczen zdobyl: " << procent << " procent, oraz ocene: bdb+" << endl; } cout << "Co chcesz dalej robic?" << endl; return 0; }
|
|
malan |
» 2011-02-04 12:11:56 1. Kurs STC2. if( procent == 100 ) - co to ma robić? |
|
SeaMonster131 |
» 2011-02-04 12:12:49 Przed return 0; dopisz np: getch(); w #include <conio.h> :) |
|
McAffey |
» 2011-02-04 12:20:00 Po pierwsze w ogóle nie zatrzymujesz programu, przed return 0 musisz dać albo system( "PAUSE" ); albo getch(); (ale do getcha musisz dodać też bibliotekę #inclide <conio.h> ). Po drugie, wszystkie te wypisywania robisz w if( procent == 100 ) , czyli działa Ci tylko wtedy gdy ktoś miał 100% z punktów. Po trzecie, gdy chcesz aby wynik był liczbą rzeczywistą to wszystkie zmienne na których operujesz muszą być też liczbą rzeczywistą, czyli zmienne int punkty, wynik, procent; muszą być np float punkty, wynik, procent; . Po czwarte zapis if( 50 <= procent <= 56 ) zmień na zapis if( procent >= 50 && procent <= 56 ) (analogicznie we wszystkich przypadkach). Po piąte zamiast using std::cout; using std::cin; using std::endl; możesz dać po prostu using namespace std; A po szóste kod umieszczaj w tagach [cpp]...[/cpp] . Popraw to co wymieniłem powyżej a program Ci będzie działał ;) (gotowca nie pokażę, żebyś się nauczył). edit: A i zmienną int ocena możesz wyrzucić, w ogóle jej nie używasz. |
|
pekfos |
» 2011-02-04 13:26:49 Po pierwsze w ogóle nie zatrzymujesz programu, przed
return 0 musisz dać albo system( "PAUSE" ); albo getch(); (ale do getcha musisz dodać też bibliotekę #inclide <conio.h> ).
|
ehh. a do system nie trzeba cstdlib przypadkiem? a poza tym po co podsuwasz komuś technikę która jest niewskazana? |
|
McAffey |
» 2011-02-04 13:40:46 ehh. a do system nie trzeba cstdlib przypadkiem? a poza tym po co podsuwasz komuś technikę która jest niewskazana? |
Mi działa bez cstdlib, a podsunąłem mu dwa najpopularniejsze sposoby. A ten niewskazany to ze względu na jego prostotę, ponieważ nie trzeba żadnych bibliotek dopisywać ani nic. |
|
pekfos |
» 2011-02-04 13:51:11 trzeba dopisywać nagłówki! co z tego ze proste skoro każdy antywirus zablokuje uruchamianie programu. Chciałbyś pisać oprogramowanie którego nikt nie uruchomi z obawy o swój komputer? |
|
McAffey |
» 2011-02-04 13:53:39 Masz rację, ale to tylko "zadanie domowe z kółka" którym się raczej nie będzie dzielił, chociaż masz rację, że lepiej niech nie nabiera złych nawyków, przepraszam za zamieszanie. |
|
« 1 » 2 |