• Viernes 29 de Marzo de 2024, 10:35

Autor Tema:  Problema con un contador de vocales  (Leído 2204 veces)

Germanplz

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Problema con un contador de vocales
« en: Sábado 12 de Abril de 2014, 22:38 »
0
Les explico tengo que hacer un contador de vocales. El ejercicio tiene como obligación preguntar la extensión de la palabra que ingresara el usuario, guarde este numero en un arreglo, luego preguntar la palabra e imprimir el numero de vocales repetidas. No se como ser mas claro si que dejare un ejemplo de lo que debería imprimir.
---------------------------------------
Ingrese un numero: 5
Ingrese 5 letras: a b e d a
Conteo:
a 2
e 1
i 0
o 0
u 0
--------------------------------------
ahora les dejo mi código que no logro hacerlo funcionar, si me ayudaran a completarlo estaría agradecido
=======================================================================================
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
   int n=0;int aux1=0;int aux2=0;int aux3=0;int aux4=0;int aux5=0; //aux representan las vocales
   cout<<"ingrese un numero"<<endl;
   cin>>n;
   char palabra [n];//aqui guardo la palabra
   cout<<"ingrese "<<n<<" letras"<<endl;
   for (int i=0;i<n;i++){
   cin>>palabra[n];
}
for(int i=0;i<n;i++){ //con esto recorrería el arreglo y vería las vocales repetidas
if (palabra =='a' ){
aux1=aux1+1; }
else if(palabra =='e'){
aux2=aux2+1; }
else if(palabra =='i'){
aux3=aux3+1; }
else if(palabra =='o'){
aux4=aux4+1; }
else if(palabra =='u'){
aux5=aux5+1; }
} //ahora imprimo mis resultados
cout<<"a = "<<aux1<<endl;
cout<<"e = "<<aux2<<endl;
cout<<"i = "<<aux3<<endl;
cout<<"o = "<<aux4<<endl;
cout<<"u = "<<aux5<<endl;
   system ("pause");
}

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Problema con un contador de vocales
« Respuesta #1 en: Domingo 13 de Abril de 2014, 00:52 »
0
En tu código creo que lo que te falla es la pregunta if(palabra == 'a') cámbialo por if(palabra[n] == 'a') y así en el resto de las comparaciones.
Yo haría algo así, un saludo.

Código: [Seleccionar]
int iNumero;
string sPalabra;
cout << "ingrese un numero" << endl;
cin >> iNumero;
cout << "ingrese " << iNumero << " letras" << endl;
cin >> sPalabra;
int ia, ie, ii, io, iu;
ia = ie = ii = io = iu = 0;
for(int i=0;i<iNumero;i++)
{
if(sPalabra[i] == 'a')
ia++;
if(sPalabra[i] == 'e')
ie++;
if(sPalabra[i] == 'i')
ii++;
if(sPalabra[i] == 'o')
io++;
if(sPalabra[i] == 'u')
iu++;
}
cout << "a = " << ia << endl;
cout << "e = " << ie << endl;
cout << "i = " << ii << endl;
cout << "o = " << io << endl;
cout << "u = " << iu << endl;
« última modificación: Domingo 13 de Abril de 2014, 00:55 por chenech »

Germanplz

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re:Problema con un contador de vocales
« Respuesta #2 en: Domingo 13 de Abril de 2014, 03:07 »
0
En tu código creo que lo que te falla es la pregunta if(palabra == 'a') cámbialo por if(palabra[n] == 'a') y así en el resto de las comparaciones.
Yo haría algo así, un saludo.

Código: [Seleccionar]
int iNumero;
string sPalabra;
cout << "ingrese un numero" << endl;
cin >> iNumero;
cout << "ingrese " << iNumero << " letras" << endl;
cin >> sPalabra;
int ia, ie, ii, io, iu;
ia = ie = ii = io = iu = 0;
for(int i=0;i<iNumero;i++)
{
if(sPalabra[i] == 'a')
ia++;
if(sPalabra[i] == 'e')
ie++;
if(sPalabra[i] == 'i')
ii++;
if(sPalabra[i] == 'o')
io++;
if(sPalabra[i] == 'u')
iu++;
}
cout << "a = " << ia << endl;
cout << "e = " << ie << endl;
cout << "i = " << ii << endl;
cout << "o = " << io << endl;
cout << "u = " << iu << endl;
que extraño yo puse los if(palabra[n] == 'a'), lo acabo de revisar, pero como dije no funciona. Por otro lado tu código si funciona muy bien, mil gracias.