Rozdział 15 zadanie
Ostatnio zmodyfikowano 2011-07-23 11:17
Lamerek Temat założony przez niniejszego użytkownika |
Rozdział 15 zadanie » 2011-07-22 23:00:31 #include <iostream> int main() { using namespace std; int liczba; int liczba2; int c; int a1; int wynik; bool wczyt; do { std::cin.clear(); std::cin.sync(); cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuje" << endl; cout << endl; cin >> a1; } while( 6 < a1 ); switch( a1 ) { case 1: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba + liczba2; cout << "Wynik: a+b=" << liczba << '+' << liczba2 << '=' << c; break; } switch( a1 ) { case 2: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba - liczba2; cout << "Wynik: a-b=" << liczba << '-' << liczba2 << '=' << c; break; } switch( a1 ) { case 3: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba * liczba2; cout << "Wynik: a*b=" << liczba << '*' << liczba2 << '=' << c; break; switch( a1 ) { case 4: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba / liczba2; cout << "Wynik: a/b=" << liczba << '/' << liczba2 << '=' << c; break; } } return 0; }
Proszę mi pomóc ponieważ dodawanie odejmowanie i mnozenie działa poprawnie a dzielenie nie działa wogóle. Proszę o rozwiązanie błędu. |
|
SeaMonster131 |
» 2011-07-22 23:14:19 Zajrzyj do kursu a masz tam wszystko wyjaśnione... |
|
Thud |
» 2011-07-22 23:22:01 Panie Lamerek, na Twoim miejscu, tak dla schludnego programowania, przypomniałbym sobie strukturę Switch-Case. Gryzie mnie też pewna rzecz - nie lepiej tego robić na liczbach zmiennoprzecinkowych? |
|
Lamerek Temat założony przez niniejszego użytkownika |
» 2011-07-22 23:37:37 Może i lepiej. Ale dlaczego nie chce mi dzielić? |
|
akwes |
» 2011-07-22 23:49:59 Nie chce działać czy są złe wyniki? Liczby które masz są typu int. Operator "/" dla typu int to dzielenie całkowite. 10/3 = 3; 9/3 = 3; 8/3 = 2;
Zmień swoje a,b,c na float. |
|
Lamerek Temat założony przez niniejszego użytkownika |
» 2011-07-22 23:50:02 Panowie udało mi się. Dziękuje za pomoc. |
|
Lamerek Temat założony przez niniejszego użytkownika |
» 2011-07-23 11:17:27 Czy teraz program jest dobrze zrobiony i wykonany zgodnie z poleceniem? #include <iostream> int main() { using namespace std; float liczba; float liczba2; float c; int a1; int wynik; bool wczyt; c = 0; do { do { std::cin.clear(); std::cin.sync(); cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuje" << endl; cout << endl; cout << "Obecny wynik: " << c << endl; cin >> a1; } while( 6 < a1 ); switch( a1 ) { case 1: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba + liczba2; cout << "Wynik: a+b=" << liczba << '+' << liczba2 << '=' << c << endl; break; case 2: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba - liczba2; cout << "Wynik: a-b=" << liczba << '-' << liczba2 << '=' << c << endl; break; case 3: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba * liczba2; cout << "Wynik: a*b=" << liczba << '*' << liczba2 << '=' << c << endl; break; case 4: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba / liczba2; cout << "Wynik: a/b=" << liczba << '/' << liczba2 << '=' << c << endl; break; case 5: cout << "Dziekuje za skorzystanie z programu. :)"; break; } } while( a1 <= 4 ); return 0; }
|
|
« 1 » |