questo è un esempio di quello che dicevi, usare una procedura esterna da gestire come credo?? :master:
Comunque.. visto che continuo a non capire qual'è la strada da imboccare, dove e come intervenire per effettuare il controllo sul tasto premuto e mettere l'esecuzione in pausa, passiamo alla pratica e vediamo se riusciamo a risolvere..
la procedura che richiama la stampa è questa:

codice:
void Inserisci(int r, int m) {   
   int i;    
   if(r==N){      
      if (m==1) StampaSoluzione();      
      sol++;   
   }   
   else     
      for(i=0;i<N;i++) {       
         pos[r]=i;       
         if(Verifica(r)) Inserisci(r+1,m);     
      } 
}
mentre la procedura per la stampa della soluzione è questa:

codice:
void StampaSoluzione() {    
   int i,j;     
   for(i=0;i<N;i++) {        
      for(j=0;j<N;j++)          
         if(pos[i]==j) printf("X ");          
         else printf("- ");       
      printf("\n ");    
   } 
}
si può modificare per fare quello che dicevo? qualcosa tipo (in Inserisci): se viene premuto un tasto, StampaSoluzione e pausa, altrimenti solo StampaSoluzione? perchè se uso il getch l'esecuzione si interrompe fino a che non viene premuto un tasto, invece deve prevedere anche la possibilità che questo tasto non venga premuto..