Salve a tutti, sto facendo degli esercizi sulla ricerca sequenziale, e non riesco a risolvere il classico problema del tasto invio alla cattura di un carattere.
In genere mi limito ad aggiungere un semplice "variabile=getchar();" per ovviare al problema,
il search mi ha fatto tornare in mente l' "fflush(stdin);" ma il problema persiste.
Veniamo al dunque: il programma dovrebbe ricercare in modo sequenziale all'interno di una matrice n*m inizializzata dall'utente una lettera immessa
mettendo in una matrice 2*2 i valori A S D F e ricercandone uno dei 4 in ogni caso ottengo "lettera non presente". HELP!

codice:
#include <stdio.h>
#include <stdlib.h>
#define M 10 
int main(int argc, char *argv[])
{

// k e j sono i contatori, n e m righe e colonne
int k,j,n,m;                                                  


// v la matrice, p il carattere da ricercare c
// c per il getchar
char c,p,v[M][M]; 



//RICHIESTA RIGHE E COLONNE
do {
   printf("\nQuante Righe si vogliono inserire: ");
   scanf("%d",&n);
   }
while((n<0)||(n>M));
do {
   printf("\nQuante Colonne si vogliono inserire: ");
   scanf("%d",&m);
   }
while((m<0)||(m>M));
c=getchar(); 
//Il getchar per evitare che l invio mi dasse noia in seguito


//CICLO DI IMMISSIONE PER LA MATRICE
for(j=0;j<n;j++)
                for(k=0;k<m;k++) {
                                printf("\nInserire Riga %d Colonna %d: ",j+1,k+1);
                                scanf("%c",&v[j][k]);
                                c=getchar();
                                }


//QUESTA CREDO SIA LA PARTE CHE CAUSA PROBLEMI
printf("\nInserire il carattere da ricercare: ");
scanf("%d",&p);

//RICERCA SEQUENZIALE (testata con i numeri e non sembra dar problemi)
j=0; k=0;
while ((p!=v[j][k])&&(j<n))   {
                             k++;
                             if((k==m)&&(j<n-1)) { k=0; j++; }
                             }

//Inutile visualizzazione della matrice, messa solo per controllo >,<                             
for(j=0;j<n;j++)
                {
                printf("\n");
                for(k=0;k<m;k++)
                                 printf("%3c",v[j][k]);
                }
printf("\n");



//controllo finale del carattere ricercato          
if(p!=v[j][k])     printf("\nLettera non presente.\n");
else      printf("\nLettera presente\nRiga: %d\nColonna: %d\n",j,k);          

  system("PAUSE");	
  return 0;
}