Ciao,
ho creato una bozza di programma con le tue richieste:
codice:
char positivo[]={"si"};
      char negativo[]={"no"};
      char risposta[3];
      RIPRENDI:
      cout << "Ci sono spese aggiuntive?";
      cin >> risposta;
      if (stricmp(risposta, positivo)== 0)             //Se la risposta è 'si'.
      {
                   int spese_add;
                   cout << "A quanto ammontano queste spese agguntive?: ";
                   cin >> spese_add;
                   }
      else if(strcmp(risposta, positivo)!=0 && strcmp(risposta, negativo) !=0 )         // se la risposta è diversa da 'si' e da 'no'.
      {
           cout << "Rispondere con un si oppure con un no!\n\n";
           goto RIPRENDI;
           }
      /*per quanto riguarda la risposta no, il programma salta il primo 
        if perchè risulta falso, fa lo stesso anche con l'else if, e 
        quindi continua con il programma*/
Considera che non è l'unica soluzione possibile.
Io ti ho proposto questa.

Spero di esserti stato di aiuto...
Facci sapere...

Saluti Satore11

P.S.Devi includere il file Header "string.h"