Innanzitutto questo codice è molto ridondante, potresti semplificarlo molto.

In secondo luogo, è sbagliata la condizione del while più esterno: il ciclo continua a girare solo se l'utente risponde di no, il che è ovviamente il contrario di quello che vuoi.

Terzo, dopo ogni risposta l'utente preme invio, inserendo quindi un newline nel buffer: se l'utente risponde n, al ciclo successivo la scanf legge un newline e il programma segnala un errore. Dovresti fare una fflush sullo stdin (se sei su windows, altrimenti cerca nel forum, si è parlato mille volte di una soluzione più portabile).

codice:
int main()
{
   char risp;
    
     do
     {
          /*CODICE PER RISOLVERE L'EQUAZIONE*/
          
          printf("\nVuoi risolvere un'altra equazione? s=si n=no\n");
          scanf("%c",&risp);
          do
          {
            if(risp!='n' && risp!='s')
            {
                printf("\nError....\n");
	        scanf("%c",&risp);
            }
          }
          while(risp != 'n' && risp != 's');
     }
     while(risp == 's' );
     return 0;   
}