Lekcja 15, zadanie nr 2--pytanie oraz prośba o zerknięcie na poprawność kodu.
Ostatnio zmodyfikowano 2023-08-07 21:13
Pixelek1985 Temat założony przez niniejszego użytkownika |
Lekcja 15, zadanie nr 2--pytanie oraz prośba o zerknięcie na poprawność kodu. » 2023-08-06 16:49:22 Cześć, Zajmuje się obecnie realizacją zadania nr 2 z lekcji 15. Gdyby ktoś znalazł przestrzeń czasową na zerknięcie na sensowność poniższego kodu to byłabym bardzo wdzięczna. Zastawiam się również czy przy wyborze działań nie powinnam zastosować jakiegoś ograniczenia, aby można było wybrać tylko te z dostępnych od 1 do 5. Z góry bardzo dziękuję za pomoc. #include <iostream> #include <limits>
int main()
{ int a; int wynik = 0; do { int cos; int dzialanie; wynik = cos; bool blad; bool blad1; std::cout << " Wynik = " << wynik << std::endl; do { std::cout << " Podaj liczbe" << std::endl; std::cin >> a; blad = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); } while( blad == 1 ); if( a == 0 ) { return 0; } std::cout << " [1] Dodawanie" << std::endl; std::cout << " [2] Odejmowanie" << std::endl; std::cout << " [3] Mno¿enie" << std::endl; std::cout << " [4] Dzielenie" << std::endl; std::cout << " [5] Rezyguj" << std::endl; do { std::cout << "Podaj dzialanie" << std::endl; std::cin >> dzialanie; if( dzialanie == 0 ) { return 0; } blad1 = std::cin.fail(); std::cin.clear(); std::cin.ignore( 1, '\n' ); } while( blad1 == 1 ); switch( dzialanie ) { case 1: std::cout << "wynik dodawania = " << wynik + a << std::endl; cos = wynik + a; break; case 2: std::cout << "wynik odejmowania = " << wynik - a << std::endl; cos = wynik - a; break; case 3: std::cout << "wynik mno¿enia = " << wynik * a << std::endl; cos = wynik * a; break; case 4: std::cout << "wynik dzielenia = " << wynik / a << std::endl; cos = wynik / a; break; case 5: std::cout << "Rezygnuje" << std::endl; break; } } while( a != 0 ); return 0; }
|
|
pekfos |
» 2023-08-06 17:53:27 Zmienna cos jest zbędna, wystarczy samo wynik. Do tego cos jest niezainicjalizowane i nadpisujesz wynik jego wartością. Wartość niezainicjalizowanych zmiennych jest nieokreślona i zachowanie programu może się zmienić zależnie od kompilatora lub jego ustawień. Przykładowo jeśli zrobić int cos = 1234; int dzialanie; wynik = cos; to program przestaje działać. blad1 też jest zbędne, bo można wykorzystać ponownie blad. |
|
Pixelek1985 Temat założony przez niniejszego użytkownika |
» 2023-08-07 21:13:31 Pięknie dziękuję za pomoc i uwagi. |
|
« 1 » |