codice:const char * positivo="si"; //non serve creare array modificabili, bastano puntatori a risorse incorporate nell'eseguibile const char * negativo="no"; char risposta[3]; bool riprova; do { cout << "Ci sono spese aggiuntive?"; cin.getline(risposta,2); //in questo modo evito eventuali buffer overrun cin.sync(); //svuoto il buffer di input, che potrebbe contenere un '\n' di troppo if(!stricmp(risposta, positivo)) //se la risposta è 'si'. { int spese_add; cout << "A quanto ammontano queste spese agguntive?: "; cin >> spese_add; //... riprova=false; } else if(stricmp(risposta, positivo)!=0 && stricmp(risposta, negativo) !=0 ) // se la risposta è diversa da 'si' e da 'no'. { cout << "Rispondere con un si oppure con un no!\n\n"; riprova=true; } else riprova=false; } while(riprova);