Título: problema con tablas y tuplas Publicado por: original91 en 10 Mayo 2010, 17:15 pm Hola buenas, necesito ayuda para resolver un problema que tengo que hacer con C++.
Haber si alguien me puede ayudar :) Diseñar un algoritmo que, dada una sequencia de caracteres terminada en punto, escriba la palabra mas "consonantica ", 'es decir, la que tenga el porcentaje mas alto de consonantes respecto del total de letras de la palabra Ejemplo: LOS GUSANOS DE TIERRA. El% de consonantes sería respectivamente: 66%, 75%, 50% y 60%. Respuesta: GUSANOS Título: Re: problema con tablas y tuplas Publicado por: leogtz en 11 Mayo 2010, 00:04 am No me cuadran los porcentajes.
"los" -> 2 consonantes de 3 letras, 2/3 = 0.66 "gusanos" -> 4 consonantes de 7, 4/7 = 0.57, ¿por qué 75%? "de" -> 1 consonante de 2 letras, 1/2 = 0.5 "tierra" -> 3 consonantes de 6 letras, 3/6 = 0.5, ¿por qué 60 %? Título: Re: problema con tablas y tuplas Publicado por: original91 en 11 Mayo 2010, 00:05 am Perdon jajaja, esque estaba en catalan y lo he traduido rapidamente jajaja. estan mal los porcentajes.
Título: Re: problema con tablas y tuplas Publicado por: leogtz en 11 Mayo 2010, 01:11 am Puedes usar la función strtok() para separar la cadena por el carácter que desees, en este caso el carácter espacio.
Vas procesando cada palabra (token) y cuentas sus consonantes, por lo que podrás calcular el porcentaje, luego puedes meterlo en un vector dicho porcentaje, para luego implementar una búsqueda secuencial para encontrar el porcentaje mayor y la posición del token mayor. Título: Re: problema con tablas y tuplas Publicado por: original91 en 12 Mayo 2010, 00:44 am de momento tengo esto:
#include <iostream> using namespace std; typedef int TParaulaActual [MAX]; TParaulaMax [MAX]; void main () { TParaulaActual paraulaActual; TParaulaMax paraulaMax; int index, numFinal, numConsonants; double percentatge, percentatgeMax; index=0; numFinal=0; numConsonants=0; percentatge=0.0; percentatgeMax=0.0; cout<<"Entra la seqüència"<<endl; cin>>paraulaActual[index]; while (paraulaActual[index]!='.') { while (paraulaActual[index]!=' ') { if (((paraulaAct[index]:=’a’)||(paraulaAct[index]:=’e’)||(paraulaAct[index]:=’i’)||(paraulaAct[index]:=’o’)||(paraulaAct[index]:=’u’)||(paraulaAct[index]:=’A’)||(paraulaAct[index]:=’E’)||(paraulaAct[index]:=’I’)||(paraulaAct[index]:=’O’)||(paraulaAct[index]:=’U’)) { numConsonants=numConsonants+1; } index=index+1; cin>>paraulaActual[index]; } numFinal=index-1; percentatge=(double)numConsonants*100.0/(double)numFinal; if (percentatge>percentatgeMax) { for (index=0<numFinal) { paraulaMax[index]=paraulaActual[index]; } percentatgeMax=percentatge; } index=0; numFinal=0; numConsonants=0; percentatge=0.0; cin>>paraulaActual[index]; } cout<<"La paraula mes consonantica es:" for(index=0<numFinal { cout<<paraulaMax[index]<<endl; } cout<<"amb un"; cout<<percentatgeMax; cout<<"de consonants"; } |