DEV C++ używanie switch() i case
pomagacz: Witam, mam problem, napisałem prosty program w C++ i nie mogę zrobić tak, aby po użyciu
jakiegoś casea mieć możliwość wybrania kolejnego
KOD:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a, b;
double wynik = 0.00;
int c;
cout<<"Podaj dane: "<<endl;
cin>>a>>b;
cout<<"Dzialania:"<<endl;
cout << "1 − mnozenie\n2 − dzielenie\n3 − dodawanie\n4 − odejmowanie\n" << endl;
cin >> c;
switch(c)
{
case 1:
{
wynik = a*b;
cout << "Wynik mnozenia to: " << wynik << endl;
}break;
case 2:
{
if (b != 0)
{
wynik = a/b;
cout << "Wynik dzielenia to: " << wynik << endl;
}
else
cout << "Nie dziel przez 0!" << endl;
}break;
case 3:
{
wynik = a + b;
cout << "Wynik dodawania to: " << wynik << endl;
}break;
case 4:
{
wynik = a − b;
cout << "Wynik odejmowania to: " << wynik << endl;
}break;
default:
{
cout << "Zle wybrales. Wybierz 1, 2, 3 lub 4" << endl;
}break;
}
system("PAUSE");
return EXIT__SUCCESS;
}
KONIEC KODU
na końcu przy return EXIT__SUCCESS; jest jeden podkreślnik a nie dwa, inaczej by wyszło
return EXITSUCCESS;
25 paź 18:32
b.: po wybraniu któregoś z 'case'ów program wychodzi ze 'switch' i wykonuje system("PAUSE"); i
return
jeśli chcesz, by użyszkodnik mógł wielokrotnie wykonywać obliczenia, powinieneś część programu
zawrzeć w pętli. Np. możesz dać:
do { // *** NOWE
cout<<"Podaj dane: "<<endl; cin>>a>>b;
// (...)
default: {
cout << "Zle wybrales. Wybierz 1, 2, 3 lub 4" << endl;
}
break;
}
} while (c!=0); // *** NOWE
Wówczas program będzie powtarzał prośbę o podanie danych i wybór działania aż do momentu, gdy
ktoś poda '0', które spowoduje wyjście z pętli.
25 paź 20:25
pomagacz:
int a, b, wyn;
do
{
cout << " Podaj a i b: " << endl;
cin >> ...
...
switch(x)
{
case 1: ...
case 2: ...
...
default: cout << " nie dziel przez 0 " << endl;
}
while(x != 0)
tak na przykład?
25 paź 20:32
b.: no jeśli robisz 'cin >> x' a nie tak jak wyżej 'cin >> c', to tak prawie może być (będzie
potrzebna dodatkowa klamerka } przed while).
25 paź 20:41
pomagacz:
niestety nie kompiluje się

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a, b, wynik, wybor;
cout << "Podaj a i b: " << endl;
cin >> a >> b;
do
{
cout << "Wybierz 1−mnoz" << endl;
cout << "Wybierz 2−dod" << endl;
cout << "Wybierz 3−odej" << endl;
cout << "Wybierz 4−dziel" << endl;
cin >> wybor;
switch(wybor)
{
case 1:
{
wynik = a*b;
cout << "Mnożenie: " << wynik << endl;
}break;
case 2:
{
wynik = a+b;
cout << "Dodawanie: " << wynik << endl;
}break;
case 3:
{
wynik = a−b;
cout << "Odejmowanie: " << wynik << endl;
}break;
case 4:
{
if (b!=0)
{
wynik = a/b;
cout << "Dzielenie: " << wynik << endl;
}
else
cout << "nie bo 0" << endl;
}break;
}
}
while(wybor != 0)
system("PAUSE");
return EXIT
SUCCESS;
}
albo nadal źle z Tobą współpracuję...
25 paź 20:51
b.: nie ma srednika po while(wybor!=0)
jak sie nie kompiluje i chcesz pomocy, to napisz co kompilator wypisal...
25 paź 21:15
pomagacz: OK już działa, jeden śmieszny średnik i program nie chce działać
25 paź 21:32
pomagacz:
A i jeszcze jedno, jakbyś b. był lub ktoś inny, takie cosik:
...
for (int i=0;i<n;i++)
a *= a;
...
czy możliwe jest również dzielenie, czyli:
...
a /= a; // (?)
...
chociaż wątpię, ale jak takie coś zrobić?
25 paź 22:01
Trivial: Możliwe jest wszystko.
25 paź 22:08
pomagacz:
ok już poradziłem sobie z potęgowaniem w potęgach nieujemnych ale nie wiem jak zabrać się za
potęgowanie w potęgach ujemnych
for (int i = ?; i ?<?>? potega; i ?++?−−)
liczba ?= liczba;
co wstawić
25 paź 22:45
25 paź 22:51