Primero debes invertir la palabra, puesto que, si por ejemplo, pones "hola"
Código:
h = 0
o = 1
l = 2
a = 3
y dices:
Código:
i = 0 ---> si p[i] es una vocal, se convierte en un espacio --> imprimes p[j-i-1], o lo que es lo mismo, p[3], que es una letra que todavía no has eliminado, siendo una vocal.
Entonces, queda así:
Código
void invertir (char p []) { int i,j; for(i=j-1; i >=0 ;i--) { if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u') { p[i] = ' '; } } }
Un saludo.