A mio avviso ti sei un po' complicata la vita...innanzitutto non ho capito che dovrebbe fare la variabile x, poi il "while" è del tutto fuori luogo già che serve per eseguzioni di cicli (il while fa: " fare il ciclo fino a quando x!=0") e quindi se inserisci un valore a x che è <> a 0 il "ciclo" è infinito!!!
Quello che penso che volevi fare te è che alla fine del prodotto ri-inserivi un nuovo valore di x per far stoppare o continuare il ciclo...programmando in linguaggio c puoi fare la medesima cosa mettendo prima dell'ultima graffa "return main()" che fa ripartire il programma.
Ora il compilatore dev-c++ è un po' "noioso" su alcune cose, il tuo "return 0" a fine programma fa chiudere automaticamente il programma (infatti penso che quando lo avvii ti flasha in un secondo nemmeno la schermata nera).
#include <stdio.h>
int main () {
int a,b,p;
printf ("inserisci primo numero = ");
scanf ("%d",&a);
printf ("inserisci secondo numero = ");
scanf ("%d",&b);
p=a*b;
printf ("il prodotto tra i due numeri = %d\n",p);
return main();
}
se lo compili andrà sicuramente
spero di esserti stato utile ciao.