int spr1;
switch( spr1 )
{
case +:
To int czy char? Typ int reprezentuje liczby całkowite. Nie możesz wrzucić do niego znaku '+' czy litery. Od tego jest typ
char
Kiedy deklarujesz zmienną w main()
int a;
int b;
int wynik1 = a + b;
int wynik2 = a - b;
int wynik3 = a * b;
int wynik4 = a / b;
To zmienna ta jest wypełniona "śmieciami", czyli pozostałościami w pamięci. Sprawdź sobie taki program, i zobacz co wyjdzie:
#include <iostream>
using namespace std;
main()
{
int a;
cout << "to kryje sie pod nazwa 'smieci' w zmiennej 'a' : " << a;
return 0;
}
Jeśli nie chcesz mieć tych śmieci w zmiennej przy jej tworzeniu, to są 2 opcje:
1. nadajesz jej wartość od razu
int a = 5;
teraz zmienna 'a' ma wartosc 5. Możesz to sprawdzić!
cout << "ok, zmienna a teraz: " << a;
2. Zmienną piszesz przed main(), czyli:
#include <iostream>
using namespace std;
int a;
int main()
{
cout << "zmienna 'a' nad main'em : " << a;
return 0;
}
Jeśli taką zmienną zadeklarujesz nad main'em, to jej wartość ZAWSZE wyniesie 0.
A teraz co do programu ;)
Masz więc zmienne a i b w których są śmieci. Co dalej? Dalej masz
int wynik1 = a + b;
int wynik2 = a - b;
int wynik3 = a * b;
int wynik4 = a / b;
Co to oznacza? To oznacza, że bierzesz te śmieci i dodajesz je w wynik1, odejmujesz w wynik2, i tak dalej...
Bez sensu, prawda?
Jak temu zaradzić? Cóż, sam na to wpadłeś
cout << "Podaj liczbe a:" << endl;
cin >> a;
cout << "Podaj liczbę b:" << endl;
cin >> b;
Ale musisz to dać przed deklaracją (stworzeniem) zmiennych wynik1, wynik2, wynik3 i wynik4. Dlaczego?
Ponieważ mówisz kompilatorowi: Kompilatorze! Chce zmienną, nazwaną "wartosc1" której wartością będzie zmiennej A + zmiennej B. Ale chodzi mi o ich wartość W TYM MOMENCIE.
Czyli jeśli za chwilę zmienna A ulegnie zmianie, to wcale nie znaczy, że wynik1 sie zmieni. Nie nie... wynik nie zapomina.
Dlatego, podam Ci parę wskazówek jak to wszystko naprawić.
- wiesz już, że żeby te operacje matematyczne miały sens, wartość zmiennych też musi mieć sens. Najpierw poproś użytkownika o dane, dopiero potem operacje.
- chcesz, by użytkownik podał za pomocą znaków '/', '*', '+', '-' co chce zrobić? Nie od tego jest int. Od tego jest char. Char przechowuje zawsze TYLKO JEDEN ZNAK. przykład:
char a;
cout << "uzytkowniku, wpisz jakis znak: ";
cin >> a;
cout << "wpisany znak to: " << a;
tak więc, już chyba wiesz jak zmienić switch.
- case powinien wyglądać tak:
Co wpisac w miejscu 'tutaj twoj kod'? Masz case'a na dodawanie. Powinieneś więc takową operację przeprowadzić
Wybacz, że tak długie, mam nadzieję, że nie odstraszyło Cię to :p
Kiedy skończysz, wstaw kod.