[c++] kalkulator problem z funkcja if


(Krychuq16) #1

Witam serdecznie jestem początkującym więc proszę o wyrozumiałość i nie przenoszenie tematu odrazu to kosza.

Problem polega na tym że program zawsze wykonuje pierwszą instrukcję if nie wiem co zrobić żeby działało poprawnie proszę o pomoc. Korzystam z dev

#include 

#include 

using namespace std;

int main()


{

  int a, b, c;

  double wynik;


  cout << "KALKULATOR 1.0 \n ";


    cin >> a;

    cin >> b;

  cout << "\n\n" ;

  cout << "Aby dodac wcisnij 1 \n" ;

  cout << "Aby odjac wcisnij 2 \n" ;

  cout << "Aby pomnozyc wcisnij 3 \n" ;

  cout << "Aby podzielic wcisnij 4 \n" ;

  cin >> c;


    if (c== 1);

 {

 wynik = a + b;

 cout<


getch();

return(0);

}

   if (c== 2);

 {

 wynik = a - b;

 cout<


getch();

return(0);

}

   if (c== 3);

{

 wynik = a * b;

 cout<


getch();

return(0);

} 

   if (c== 4);

 {

 wynik = a / b;

 cout<


getch();

return(0);

}


  cin >> c;



getch();

return(0);

}




[/code]

(Quentin) #2

Widać, że masz problemy z najprostszymi programami.

Po if nie daje się średnika bo to oznacza koniec tej instrukcji warunkowej. Potem masz zwykłe bloki lokalne i w każdym z nich instrukcję return;, więc nie dziwne, że program zaraz się kończy (już po pierwszym takim bloku). Dodatkowo, jeżeli opcja podana przez użytkownika jest typu całkowitego (jak tutaj) to stosuje się instrukcję warunkową switch - zapis staje się bardziej przejrzysty. Zmieniłbym jeszcze typ zmiennej c na short int.


(Krychuq16) #3

Dzięki usunąłem sredniki i działa. Mam problemy z prostymi programami bo dopiero zaczynam przygodę z c++. A jak mogę to mam jeszcze jedną pytanie czy może wystąpić coś takiego if(c== +) (tylko tak zeby działało)


([alex]) #4

if(c=='+') // o ile "c" jest typu char lub liczbą (niekoniecznie całkowitą).

#include using namespace std;