codice:
...
 if ( (vett[ md ] == x) || (vett[ sx ] == x) || (vett[ dx ] == x ) )
            trovato = 1;
Porre trovato = 1 che senso ha?

EDIT:Ho capito adesso,comunque ti conviene usare il tipo bool,a colpo d'occhio si capisce meglio . .

La condizione del while è sbagliata