problema con tablas y tuplas

Iniciado por original91, 10 Mayo 2010, 17:15 PM

0 Miembros y 1 Visitante están viendo este tema.

original91

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

leogtz

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 %?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

original91

Perdon jajaja, esque estaba en catalan y lo he traduido rapidamente jajaja. estan mal los porcentajes.

leogtz

#3
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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

original91

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";
}