Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/12/2010, 03:32
fcoredo
 
Fecha de Ingreso: noviembre-2010
Mensajes: 38
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: Compila pero no imprime

En el case 4 no entiendo que quieres hacer. Que no imprima es el menor de los problemas.

1. Tienes un bucle donde 'a' se incrementa hasta el infinito

for(int a=0; oracion[i] != ' ' ; a++)

Como no haces nada con la variable 'a' en el bucle, esa linea es idéntica a:

while(oracion[i] != ' ')

2. Sobreescribes el valor de oracion con una variable no inicializada (aux):

oracion[i]=aux[j];

3. Además, la máquina de estados no me parece que esté bien planteada. Imagina si tienes la frase "voy a jugar al golf y despues me comeré una hamburguesa".

Cuando encuentra la 'g' de la palabra golf pasa al estado 2, en el estado 2 pasa al 3 pues encuentra la 'o', al encontrar la 'l' debería resetear el estado, pero no lo hace, así que cuando llegue a la 'd' de 'despues me voy a comer un hamburguesa', el algoritmo habrá encontrado la palabra god. Cosa que no es cierta.

4. Lo que menciona Fw190 sobre la falta de breaks, no se si lo has hecho en forma intencional. Si no es así, no le veo la lógica a la linea:

oracion[i]=oracion[i+1];

Y hay más errores, yo en tu lugar volvería a empezar de cero.