Título: Ayuda para resolver este problema de C Publicado por: Legors en 30 Enero 2017, 03:22 am Un amigo me ha retado a intentar programar esto en C, soy principiante y por mas que he intentado no lo he logrado.
Le dije que me rendía y que me dijera como hacerlo pero se nego jajaja. Entrada Un texto formado por caracteres alfabéticos y blancos. Cada palabra del texto está formada exclusivamente por caracteres alfabéticos y mide entre 1 y 10 caracteres de longitud. Salida La cantidad de veces que aparece la palabra "sak" o algo parecido: cualquier cadena de mayúsculas o minúsculas que empiece con una o más "s", siga con una o más "a" y termine con una o más "k". (https://fotos.subefotos.com/a5bfe34c9fb8402e1fffdbbb2e42fb3ao.jpg) Llevo esto hasta ahora. Código: #include <stdio.h> Casi funciona bien. El problema es que cuenta palabras como "asak" o "tarsak" por que tiene las combinaciones de s, a y k. Título: Re: Ayuda para resolver este problema de C Publicado por: Kenji-chan en 30 Enero 2017, 13:51 pm muestra cual es el código que llevas para poder orientarte
Título: Re: Ayuda para resolver este problema de C Publicado por: MAFUS en 30 Enero 2017, 20:29 pm Lo más sencillo es crear una máquina de estados. Es decir, tu buscas la secuencia ' sak', nótese el espacio delante.
Empiezas por un estado de 0 que quiere decir que no tienes ningún carácter de la secuencia. Sólo cuándo encuentres el espacio pasas al estado 1. Sigues en el estado 1 mientras encuentres espacios. Si encuentras el carácter 's' o 'S' pasas al estado 2, si encuentras otro carácter diferente a la 's', 'S', o ' ', regresas al estado 0. Estando en estado 2 sigues mirando caracteres. Si es una 's' o 'S' sigues en estado 2, si es 'a' o 'A' pasas al estado 3, si es otra situación regresas al estado 0. Estando en estado 3 sigues mirando caracteres. Si es una 'k' o 'K' sigues en estado 3, si es un espacio ' ' has encontrado la secuencia y aumentas un contador y regresas al estado 0. Pero te encontrarás con un problema: Si empiezas de esta forma y la primera palabra es sak NO te la contará. Te dejo que resuelvas eso. Título: Re: Ayuda para resolver este problema de C Publicado por: Kenji-chan en 30 Enero 2017, 21:56 pm en el if(texto
|