Błędy, ale gdzie?
Ostatnio zmodyfikowano 2010-12-30 16:03
marcin1133 Temat założony przez niniejszego użytkownika |
Błędy, ale gdzie? » 2010-12-30 15:37:23 Otóż napisałem prosty kalkulator, nie jestem w pełni zadowolony z niego i pewnie zaraz mnie zjedziecie za używanie goto, ale problem tkwi w czymś innym. Kalkulator teoretycznie działa, kompiluje się, ale nie wypisuje poprawnego wyniku. Oto kod źródłowy: #include <iostream> #include <conio.h>
using namespace std;
int main() { double a, b; short typ; double wynik = 0; do { cout << "\nWynik = " << wynik << endl; for( char x = 'a'; x != 'c'; x++ ) { cout << "Podaj liczbe " << x << ": "; if( x == a ) cin >> a; else cin >> b; if( cin.fail() ) { cout << "Wystapily bledy"; break; } cin.clear(); cin.sync(); }; if( cin.fail() ) { cin.clear(); cin.sync(); cout << "\nSprobuj jeszcze raz"; goto koniec; } cout << "Wybierz typ dzialania: \n" << "[1] Dodawanie\n" << "[2] Odejmowanie\n" << "[3] Mnozenie\n" << "[4] Dzielenie\n" << "[5] Zakoncz\n"; cin >> typ; if( typ == 4 && b == 0 ) { cout << "Nie mozna dzielic przez zero!\n"; goto koniec; } else switch( typ ) { case 1: wynik = a + b; break; case 2: wynik = a - b; break; case 3: wynik = a * b; break; case 4: wynik = a / b; break; case 5: cout << "Do zobaczenia!\n"; break; default: cout << "Nieprawidlowe dzialanie, sprobuj jeszcze raz\n"; cin.clear(); cin.sync(); break; }; koniec:; } while( typ != 5 ); cout << "\n\n\tKoniec"; getch(); return 0; }
Ma ktoś jakieś pomysły co robię źle? Z góry dziękuje za pomoc. |
|
DejaVu |
» 2010-12-30 15:45:42 Daj przykładowe dane testowe dla których program działa źle. |
|
ison |
» 2010-12-30 15:50:39 masz straszny bałagan w kodzie do { cout << "\nWynik = " << wynik << endl;
najpierw wypisujesz wynik a potem wczytujesz? tu chyba powinno być 'a' a nie zmienna a(która ma niewiadomą wartość na początku) po co ten średnik na końcu fora? po poprawie a na 'a' program działa 'dobrze' ;) |
|
marcin1133 Temat założony przez niniejszego użytkownika |
» 2010-12-30 16:03:01 Czyli komputer przypisywał jakąś losową wartość do a i cokolwiek bym nie wpisał wychodziło "NaN". Dzięki, teraz już dobrze. Wiem, że trochę to wszystko chaotyczne, ale wydaje mi się, że przynajmniej działa tak jak chciałem i sprawdza wszystko jak należy. |
|
« 1 » |