Buona sera, vorrei dei consigli cortesemente su questo programma,dove calcolo il valore di x in base alla traccia fornita, successivamente effettuo una scelta se continuare oppure uscire, rimango un po'perplesso sul funzionamento del terzo case ,perchè dopo la seconda opzione di carattere errato esce dal programma, premetto che sono autodidatta ,e nemmeno studente, ma mi diletto ad imparare. Grazie e buona serata.
/*Traccia Algoritmo:
Sottraendo 2/5 ad un numero si ottiene come risultato i 2/5 del numero stesso
espressione per il calcolo:
(2/5)-x=(2/5)*x
*/
#include <stdio.h>
void scelta();//Void creata per scegliere la continuazione del programma
void Messaggio();////Stampa del messsaggio y OR n PER SELEZIONARE l'opzione di proseguire il programma o terminare
void Calcolo_Incognita();//Calcolo incognita secondo traccia
void main (void)
{
//Richiamo la void
Calcolo_Incognita();
scelta();
}
void scelta()
{
char Carattere;
Calcolo_Incognita;
//Proseguo finche la risposta è affermativa9/
do{
printf("Vuoi Continuare?\n");
Messaggio(); //Richiamo la void Messggio
scanf(" %c", &Carattere);
// Discrimino le Opzioni di scelta
switch (Carattere)
{
case 'y':
case 'Y':
Calcolo_Incognita();
break;
//Esco dal Programma
case 'N':
case 'n':
break;
default:
//Reinserico il carattere perchè diverso da Y/N
printf("Carattere Erratto:\n Inserisci Nuovamente il carattere di scelta \n \n");
Messaggio();
scanf(" %c", &Carattere);
if(Carattere=='Y'|| Carattere=='y') Calcolo_Incognita();
break;
}
}while (Carattere=='Y' || Carattere=='y');
}
void Messaggio()
{
//printf("Vuoi Continuare?\n");
printf("Opzioni:\n"
"1)y or Y to be continued\n"
"2)N or n Exit\n");
}
//**************************************************
void Calcolo_Incognita()
{
int Numeratore,Denominatore;
int Risultato=0;
do{
printf("Inserisci il Numeratrore \n");
scanf(" %d", &Numeratore);
}while(Numeratore<=0) ;//Ripeto finchè è valida la condizione del ciclo
do{
printf("Inserisci il Denominatore \n");
scanf(" %d", &Denominatore);
}while(Denominatore<=0);//Ripeto finchè è valida la condizione del ciclo
Risultato=(Numeratore+Denominatore);
printf("Il Risultato vale: %d"
"/"
"%d ", Numeratore,Risultato);
}