[Lekcja 15] zadanie domowe - problem
Ostatnio zmodyfikowano 2011-11-15 09:22
Drraven |
» 2011-11-08 06:47:58 Przecież ci napisałem jak. |
|
pawel93 Temat założony przez niniejszego użytkownika |
» 2011-11-08 07:48:51 no właśnie tylko nie zabardzo wiem jak to wstawić DO musze wstawić zaraz po moim int main() ?? czy gdzies dalej?? a while dac na sam koniec?? |
|
SeaMonster131 |
» 2011-11-08 17:58:21 do { if( koniec ) break; } while( 1 );
|
|
pawel93 Temat założony przez niniejszego użytkownika |
» 2011-11-08 19:22:54 nie wiem ja to zrobiłem tak i jakoś działa #include <iostream> using namespace std; int main()
{ int a; int b; int wynik; int liczba; do { cout << "witaj w programie kalkulator" << endl; cout << "co chcesz teraz zrobic?" << endl; cout << "jesli chcesz:" << endl; cout << "dodac wybierz [1]" << endl; cout << "odejmowac wybierz [2]" << endl; cout << "mnozyc wybierz [3]" << endl; cout << "dzielic wybierz [4]" << endl; cout << "zrezygnowac wybierz [5]" << endl; cin >> liczba; cin.clear(); cin.sync(); switch( liczba ) { case 1: { cout << "wpisz pierwsza liczbe" << endl; cin >> a; bool x = cin.good(); cin.clear(); cin.sync(); cout << "wpisz druga liczbe" << endl; cin >> b; bool y = cin.good(); cin.clear(); cin.sync(); wynik = a + b; cout << "czy udalo sie wczytac liczbe?" << x << endl; cout << "czy udalo sie wczytac liczbe?" << y << endl; cout << "wynik =" << wynik << endl; break; } case 2: { cout << "wpisz pierwsza liczbe" << endl; cin >> a; bool x = cin.good(); cin.clear(); cin.sync(); cout << "wpisz druga liczbe" << endl; cin >> b; bool y = cin.good(); cin.clear(); cin.sync(); wynik = a - b; cout << "czy udalo sie wczytac liczbe?" << x << endl; cout << "czy udalo sie wczytac liczbe?" << y << endl; cout << "wynik =" << wynik << endl; break; } case 3: { cout << "wpisz pierwsza liczbe" << endl; cin >> a; bool x = cin.good(); cin.clear(); cin.sync(); cout << "wpisz druga liczbe" << endl; cin >> b; bool y = cin.good(); cin.clear(); cin.sync(); wynik = a * b; cout << "czy udalo sie wczytac liczbe?" << x << endl; cout << "czy udalo sie wczytac liczbe?" << y << endl; cout << "wynik =" << wynik << endl; break; } case 4: { cout << "wpisz pierwsza liczbe" << endl; cin >> a; bool x = cin.good(); cin.clear(); cin.sync(); cout << "wpisz druga liczbe" << endl; cin >> b; bool y = cin.good(); cin.clear(); cin.sync(); wynik = a / b; cout << "czy udalo sie wczytac liczbe?" << x << endl; cout << "czy udalo sie wczytac liczbe?" << y << endl; cout << "wynik =" << wynik << endl; break; } case 5: { cout << "koniec programu" << endl; break; } default: cout << "wpisz poprawna liczbe" << endl; break; } } while( liczba != 5 ); return 0; }
tylko mam jeszcze jedno pytanie odnośnie tego programu czemu jak np dodaje 2 liczby i zamiast liczbe napisze np literke "a" to wynik wyskakuje np 4545 a powinno chyba 0 wyjsc i jeszcze taka drobnostka gdzie musze dac to cin.clear(); zeby mi sie ekran po każdej wykonanej pętli czyścił? |
|
malan |
» 2011-11-12 21:21:56 czemu jak np dodaje 2 liczby i zamiast liczbe napisze np literke "a" to wynik wyskakuje np 4545
|
Ponieważ sprawdzasz, czy poprawnie wczytano dane, ale nic więcej z tym nie robisz. W przypadku błędnych danych żadne obliczenia nie powinny się wykonać. gdzie musze dac to cin.clear(); zeby mi sie ekran po każdej wykonanej pętli czyścił?
|
O.o Ta metoda nie służy do czyszczenia ekranu! Gdzie Ty to wyczytałeś? Musiałbyś dodać niestandardową/dodatkową bibliotekę (np. ddtconsole lub PDCurses), aby móc czyścić ekran. |
|
jfr |
» 2011-11-12 22:02:50 Przecież Drraven już napisał na poprzedniej stronie jak się czyści ekran. system("cls"); z biblioteki cstdlib |
|
Drraven |
» 2011-11-12 22:32:50 to na windowsie, na linuxie system( "clear" ); Użyj #dyrektyw . |
|
pawel93 Temat założony przez niniejszego użytkownika |
» 2011-11-15 09:22:30 dobra dzięki za pomoc już wiem wszystko
pozdrawiam |
|
1 « 2 » |