Rozdział 15 Zadanie domowe 2 - gdzie popełnilam błąd?
Ostatnio zmodyfikowano 2016-06-12 13:39
mysza Temat założony przez niniejszego użytkownika |
Rozdział 15 Zadanie domowe 2 - gdzie popełnilam błąd? » 2016-06-12 13:03:34 Witam, chciałam zrobić zadanie drugie i napisałam taki program, ale nie chce mi się wykonywać pętla. Czy ktoś pomoże mi znaleźć błąd? #include <iostream> using namespace std;
int main() { int a = 1; int wynik; int dzialanie; int b; do { cout << "Obecny wynik: " << a << endl; cout << "Wprowadz liczbe: " << endl; cin >> b; cout << "Wybierz dzialanie:\n[1] dodawanie\n[2] odejmowanie\n[3] mnozenie\n[4] dzielenie" << endl; cin >> dzialanie; cout << "\nObliczanie...\n" << endl; switch( dzialanie ) { case 1: cout << a << " + " << b << " = " << a + b << endl; wynik = a + b; break; case 2: cout << a << " = " << b << " = " << a - b << endl; wynik = a - b; break; case 3: cout << a << " * " << b << " = " << a * b << endl; wynik = a * b; break; case 4: cout << a << " / " << b << " = " << a / b << endl; wynik = a / b; break; default: cout << "Wybralas niepoprawne dzialanie." << endl; break; } wynik = a; } while( b = 0 ); cout << "Program zakonczony." << endl; return 0; }
|
|
carlosmay |
» 2016-06-12 13:08:57 ale nie chce mi się wykonywać pętla. |
Pętla wykonuje się przynajmniej raz. Tak działa do { } while(); Błędny jest warunek pętli: |
|
mysza Temat założony przez niniejszego użytkownika |
» 2016-06-12 13:12:46 Dziękuje za szybką odpowiedź. A na jaki warunek pętli mam zmienić? Nie mam już pomysłów. |
|
carlosmay |
» 2016-06-12 13:16:32 Chodzi o sam operator = (to jest operator przypisania. Operatory ralacji ==, !=, <, <=, >, >= |
|
mysza Temat założony przez niniejszego użytkownika |
» 2016-06-12 13:22:41 Niestety nie, ja już próbowałam wcześniej zamienić do { ..... } while( b = 0 );
do { ..... } while( b == 0 );
Ale to nic zmienia. Już przeanalizowałam cały kod i próbowałam różnych wariantów. Sama nie mogę znaleźć pozostałych błędów a na pewno jeszcze jakieś są przez co pętla wykonuje się tylko raz. |
|
Gibas11 |
» 2016-06-12 13:37:06 To działa: #include <iostream> using namespace std;
int main() { int a = 1; int wynik; int dzialanie; int b; do { cout << "Obecny wynik: " << a << endl; cout << "Wprowadz liczbe: " << endl; cin >> b; cout << "Wybierz dzialanie:\n[1] dodawanie\n[2] odejmowanie\n[3] mnozenie\n[4] dzielenie" << endl; cin >> dzialanie; cout << "\nObliczanie...\n" << endl; switch( dzialanie ) { case 1: cout << a << " + " << b << " = " << a + b << endl; wynik = a + b; break; case 2: cout << a << " = " << b << " = " << a - b << endl; wynik = a - b; break; case 3: cout << a << " * " << b << " = " << a * b << endl; wynik = a * b; break; case 4: cout << a << " / " << b << " = " << a / b << endl; wynik = a / b; break; default: cout << "Wybralas niepoprawne dzialanie." << endl; break; } a = wynik; } while( b != 0 ); cout << "Program zakonczony." << endl; return 0; }
Tylko nie wiem czy dobrze wydedukowałem warunek dla pętli. EDIT: Żebyś go przypadkiem nie przeoczyła - zwróć uwagę na ten kawałek: |
|
carlosmay |
» 2016-06-12 13:37:25 == zamień na != . Zapoznaj się z operatorami relacji (jedna z poprzednich lekcji). |
|
mysza Temat założony przez niniejszego użytkownika |
» 2016-06-12 13:39:27 ojej dziękuje! ja wstawiałam tam tylko b = 0 lub b == 0 a nie pomyślałam o tym żeby wstawić != ;d |
|
« 1 » |