Siemka. Jeśli zły dział to przepraszam, na wstępie ;)
A teraz do rzeczy:
Dopiero zaczynam swoją przygodę z C++, piszę w Microsoft Visual C++ Express. Zrobiłem programik, który oblicza wyniki z działań. Chciałem go jednak zmienić, by na początku można było wybrać typ działania. Dlatego chcę użyć do tego funkcji if. Oto co wymyśliłem:
#include <iostream>
int main ()
{
double a, x, z;
std::cout << "Programik sluzy do obliczania wynikow z dzialan. W liczbach z przecinkiem uzywaj kropki." << std::endl;
std::cout << "Wybierz typ dzialania: 1 = dodawanie 2 = odejmowanie 3 = mnozenie 4 = dzielenie" << std::endl;
std::cin >> a;
if (a==1)
std::cout << "Wprowadz 1 liczbe: \t";
std::cin >> x;
std::cout << std::endl << "Wprowadz 2 liczbe: \t";
std::cin >> z;
std::cout << std::endl << "Wynik z dodawania: \t" << x+z << std::endl;
system ("PAUSE");
return 0;
if (a==2)
std::cout << "Wprowadz 1 liczbe: \t";
std::cin >> x;
std::cout << std::endl << "Wprowadz 2 liczbe: \t";
std::cin >> z;
std::cout << std::endl << "Wynik z odejmowania: \t" << x-z << std::endl;
system ("PAUSE");
return 0;
if (a==3)
std::cout << "Wprowadz 1 liczbe: \t";
std::cin >> x;
std::cout << std::endl << "Wprowadz 2 liczbe: \t";
std::cin >> z;
std::cout << std::endl << "Wynik z mnozenia: \t" << x*z << std::endl;
system ("PAUSE");
return 0;
if (a==4)
std::cout << "Wprowadz 1 liczbe: \t";
std::cin >> x;
std::cout << std::endl << "Wprowadz 2 liczbe: \t";
std::cin >> z;
std::cout << std::endl << "Wynik z dzielenia: \t" << x/z << std::endl;
system ("PAUSE");
return 0;
}
Niestety to nie działa. Kiedy odpalam programik i wybieram "1", czyli dodawanie jest ok, wyświetla się "Wprowadz 1 liczbe" wprowadzam, potem pyta o druga i pokazuje wynik. Jednak gdy wybieram np. 3, to już nie działa. Najpierw nic się nie wyświetla, mogę wpisać np. 14, potem pyta o drugą liczbę i pisze "Wynik z dodawania:" i podaje wynik, który jest poprawny, jeśliby dodawać, ale powinno wtedy mnożyć. Co robię źle?
Wersja pierwotna:
#include <iostream>
int main ()
{
double x, z;
std::cout << "Programik sluzy do obliczania wynikow z dzialan. W liczbach z przecinkiem uzywaj kropki." << std::endl;
std::cout << "Wprowadz 1 liczbe: \t";
std::cin >> x;
std::cout << std::endl << "Wprowadz 2 liczbe: \t";
std::cin >> z;
std::cout << std::endl << "Wynik z dodawania: \t" << x+z << std::endl;
std::cout << "Wynik z odejmowania: \t" << x-z << std::endl;
std::cout << "Wynik z mnozenia: \t" << x*z << std::endl;
std::cout << "Wynik z dzielenia: \t" << x/z << std::endl;
system ("PAUSE");
return 0;
}
PS. W wersji pierwotnej, czyli bez wyboru typu działania, wszystko jest ok i oblicza jak trzeba.