Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 15, zadanie nr 2--pytanie oraz prośba o zerknięcie na poprawność kodu.

Ostatnio zmodyfikowano 2023-08-07 21:13
Autor Wiadomość
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.
C/C++
#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;
}
P-180235
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ć
C/C++
int cos = 1234;
int dzialanie;
wynik = cos;
to program przestaje działać.

blad1 też jest zbędne, bo można wykorzystać ponownie blad.
P-180236
Pixelek1985
Temat założony przez niniejszego użytkownika
» 2023-08-07 21:13:31
Pięknie dziękuję za pomoc i uwagi.
P-180245
« 1 »
  Strona 1 z 1