SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Germanplz en Sábado 12 de Abril de 2014, 22:38

Título: Problema con un contador de vocales
Publicado por: Germanplz en Sábado 12 de Abril de 2014, 22:38
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");
}
Título: Re:Problema con un contador de vocales
Publicado por: chenech en Domingo 13 de Abril de 2014, 00:52
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;
Título: Re:Problema con un contador de vocales
Publicado por: Germanplz en Domingo 13 de Abril de 2014, 03:07
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.