Salve ragazzi, ho scritto il seguente programma
codice:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
system("cls");
char scelta;
cout << "1.Potenza" << endl;
cout << "2.Fattoriale" << endl;
cout << "3.Esci" << endl;
cin >> scelta;
bool end;
for(end = true; end == true;)
{
switch(scelta)
{
case '1':
{
cout <<"Inserire il numero da elevare: "; int base; cin >> base;
cout << "Inserire l'esponente del numero: "; int esponente; cin >> esponente;
int ris;
ris = base;
int i;
for(i=1; i < esponente; i++) { ris = ris * base; }
cout << ris;
}
break;
case '2':
{
cout << "Inserire il numero: "; int num; cin >> num;
int fatt = 1;
int i;
for(i=1 ; i <= num ; i++) { fatt = fatt * i; }
cout << fatt;
}
break;
case '3': { end = false; }
break;
}
}
cout << "Premere un tasto per uscire";
getch();
return 0;
}
Il problema e' che nel momento in cui eseguo il programma ed avvio (per esempio) la procedura 1, la medesima si ripete all'infinito... mi chiede ogni volta di inserire base ed esponente.
Lo stesso per la procedura 2, mi chiede ogni volta un numero da inserire.
Come posso fare per dire al programma di terminare un case dopo aver svolto il procedimento una volta? Avevo pensato di utilizzare dei valori booleani come ho fatto per l'istruzione 3 (che chiude il programma) ma non penso che per una cosa cosi' semplice si debba fare tutta quella giostra...
Comunque... aspetto vostri consigli