Rozdział 15 do..while , problem z zadaniem
Ostatnio zmodyfikowano 2012-04-19 22:25
Hotivek Temat założony przez niniejszego użytkownika |
Rozdział 15 do..while , problem z zadaniem » 2012-04-19 21:09:33 Czy kalkulator z drugiego zadania może tak wyglądać. Co dodać żeby pokazywało tylko 1 wynik . #include <iostream>
using namespace std;
int main() { int one, two, dz, wynik; cout << "Podaj pierwsza liczbe" << endl; cin >> one; cout << "Podaj druga liczbe\n"; cin >> two; cout << "Jakie dzialanie chcesz wykonac?\n"; cout << "[1] Dodawanie\n[2] Odejmowanie\n[3] Mnozenie\n[4] Dzielenie\n[5] Rezygnuje\n"; cin >> dz; do { cout << "Wynik to " << one + two << endl; break; } while( dz = 1 ); do { cout << "Wynik to" << one - two << endl; break; } while( dz = 2 ); do { cout << "Wynik to" << one * two << endl; break; } while( dz = 3 ); do { cout << "Wynik to" << one / two << endl; break; } while( dz = 4 ); do { cout << "Koniec\n"; break; } while( dz = 0 ); return 0; }
A tutaj inne . Nie wiem jak napisać "Jeżeli błąd, wróć do kroku 1". #include <iostream>
using namespace std;
int main() { int liczba; cout << "Podaj jakas liczbe\n"; cin >> liczba; if( liczba > 0 ) { do { cout << "Plik\n"; liczba--; } while( liczba > 0 ); } if( liczba < 0 ) { cout << " podaj dodatnia liczbe\n"; } return 0; }
|
|
RazzorFlame |
» 2012-04-19 21:59:16 Nie sądze żeby ktos zrozumiał twoje pytanie ... |
|
Hotivek Temat założony przez niniejszego użytkownika |
» 2012-04-19 22:07:54 W pierwszym przypadku chciałbym się dowiedzieć jak zatrzymać wykonywanie pętli do...while po podaniu np 2 żeby program podał wynik samego odejmowania a nie wszystkie za każdym razem.
A w drugim w jaki sposób napisać przekierowanie że w przypadku if (liczba<0) program wraca do początku i pyta ponownie cin>>liczba . |
|
SeaMonster131 |
» 2012-04-19 22:12:49 1. Wszędzie dałeś do {} while(); więc wiadomo, że wykona się każda pętla (patrz. kurs), użyj switch(), if, lub chociażby pętli while() jak tak bardzo chcesz :) 2. Tutaj natomiast, pętla (np do {} while) musi się wykonywać dopóki !cin.good (czyli nie jest wprowadzona poprawna wartość), a w tej pętli oczywiście wpisywanie liczby oraz pamiętaj o czyszczeniu strumienia. No albo pętla musi się wykonywać dopóki liczba jest mniejsza od 0 :) |
|
Hotivek Temat założony przez niniejszego użytkownika |
» 2012-04-19 22:15:10 Dziękuję |
|
RazzorFlame |
» 2012-04-19 22:20:30 do { cout << "Wynik to " << one + two << endl; break; } while( dz = 1 );
Pff... Czy to naprawde takie trudne? '=' - Przypisanie '==' porownanie. Po co robisz pętle jeżeli tylko raz z niej korzystasz. Mysle że w tym zadaniu chodziło żeby cały program był w petli. Patrz: #include <iostream>
using namespace std;
int main() { int a, b, dz; do { cout << "Podaj 1 liczbe: "; cin >> a; cout << "Podaj 2 liczbe: "; cin >> b; cout << "Co chcesz wyswietlic?\n[1]Dodawanie\n[2]Odejmowanie\n[3]Dzielenie\n[4]Mnozenie\n[5]Wyjscie"; cin >> dz; if( dz == 1 ) { cout << "\n\n" << a + b << endl; } if( dz == 2 ) { cout << "\n\n" << a - b << endl; } if( dz == 3 ) { cout << "\n\n" << a * b << endl; } if( dz == 4 ) { cout << "\n\n" << a / b << endl; } } while( dz != 5 ); return 0; }
I masz. |
|
Bimbol |
» 2012-04-19 22:25:22 @Ad Pierwszy przykład. Zamiast while do użyj Switch Case lub if. Używając pętli do while z warunkami: while( dz = 1 ); while( dz = 2 ); while( dz = 3 ); while( dz = 4 ); Znak = przypisuje wartość, a nie porównuje wartości. A pętla while wykonuje się jeśli warunek jest prawdziwy. Czyli dając taki warunek obojętnie co wpiszesz nie będzie to prawdą i program leci do przodu wykonując to wszystko po kolei. do { cout << "Wynik to " << one + two << endl; break; } while( dz = 1 );
do { cout << "Wynik to" << one - two << endl; break; } while( dz = 2 );
do { cout << "Wynik to" << one * two << endl; break; } while( dz = 3 );
do { cout << "Wynik to" << one / two << endl; break; } while( dz = 4 );
do { cout << "Koniec\n"; break; } while( dz = 0 ); Napisałeś to bez sensu. Wróc do lekcji o If i Switch Case. Edit. Uprzedziło mnie już sporo osób. |
|
« 1 » |