Ciao ragazzi, Vi dico subito che non sono molto esperto con il C o il C++ , diciamo che sono quasi alle prime armi.
Ho scritto un programma che tramite una funzione menù consente di scegliere fra 6 opzioni e per ogni opzione ho scritto una funzione con uno switch(scelta).
Il programma funziona correttamente e avevo previsto un do-while per ripetere il programma da capo nel caso sia necessario . La condizione del do-while la inserivo sempre come int cioè facevo una scanf che permetteva di inserire i valori 0 o 1 rispettivamente per terminare il programma o ripartire da capo. In questo modo funziona ma se voglio sostituire la i valori 0 o 1 con 'S' o 'N' (char) il programma mi ripete sempre "reinserisci la scelta" (indifferentemente dal valore che immetto) . Come posso fare per far si che funzioni con S o N ?
Siccome non credo di essermi spiegato molto bene , vi incollo di seguito il programma principale che contiene (nelle ultime righe) la condizione del do-while.
codice:main(){ int scelta,scelta2=0,scelta3=0; char flag; do{ system("cls"); scelta=menu(); switch(scelta){ case(1): numeri_primi(); break; case(2): numeri_perfetti(); break; case(3): numeri_abbondanti(); break; case(4): numeri_amici(); break; case(5): do{ numeri_coprimi(); do{ printf("Ricominciare ? [1=Si][0=No]: "); scanf("%d",&scelta2);} while((scelta2<0)||(scelta2>1));} while(scelta2==1); break; case(6): do{ numeri_felici(); do{ printf("ricominciare ? [S/N]: "); scanf("%d",&scelta3);} while((scelta3<0)||(scelta3>1));} while(scelta3==1); break;} do{ printf("vuoi tornare al menu ? S/N: "); getchar(); scanf("%c",&flag); }while((flag!='S')||(flag!='N')); }while(flag=='S'); }

.
Rispondi quotando