[C con Clase] funcion vocales y consonante listas ???

Steven R. Davidson vze266ft en verizon.net
Jue Dic 7 04:01:56 CET 2006


Hola Alain,

alain rios correa wrote:
> 
> 
> bueno hola a todos quisiera saber si me pueden ayudar, el ejercicio dice 
> asi:
>  
> en la lista 1 se encuentra la palabra : ESTERNOCLEIDOMASTOIDEO
>  
> hacer una funcion que en la lista 2 me muestre las vocales que se 
> encuentran en dicha palabra y cuantas veces esta cada vocal
>  
> ejemplo: la vocal = e se encuentra 4 veces
>  
> y en la lista 3 hacer lo mismo pero con las consonantes de la misma palabra:
>  
> ejemplo : la consonante = t se encuentra 2 veces..
>  

Rodolfo ya te ha contestado, pero quería ofrecerte otra forma de 
resolver el problema.

Lo que te interesa hacer es lo que se llama un histograma; o sea, una 
tabla de frecuencias. Esta tabla va guardando las veces que ocurre o 
aparece un valor a examinar en particular. En tu caso, te interesa saber 
la cantidad de vocales y consonantes en una cadena. Para esto, crea un 
array de 'unsigned int' inicializado a 0 (cero). Sin embargo, el 
enunciado dice que debes usar dos listas. Esto complica un poco más las 
cosas, pero si no tienes opción, entonces tendrás que creas dos arrays 
para representar las cantidades encontradas: uno para las vocales y otro 
para las consonantes. Los índices de los arrays indican las letras y los 
elementos de tales índices contienen las cantidades. Por ejemplo,

int consonantes[20] = {0};  // Sin contar la elle ni la eñe
int vocales[5] = {0};

vocales[4]++;      // Incrementamos la vocal 'u'
consonantes[4]++;  // Incrementamos la consonante 'g'

Al recorrer la cadena, vamos incrementando el valor de la letra 
procesada. Por ejemplo,

'E' => vocales[1]++
'S' => consonantes[15]++
'T' => consonantes[16]++
'E' => vocales[1]++

Y así sucesivamente.

Al final del recorrido, obtendrás las cantidades de cada vocal y 
consonante. Si las cantidades son 0 (cero), entonces tal letra no existe 
en la cadena. De esta manera, sólo tienes que recorrer la cadena una 
sola vez.


Espero que esto te ayude.

Steven







Más información sobre la lista de distribución Cconclase