¿Alguien sabe en que parte me equivoque? (Ejercicio de C++)

Denunciar
-
Message postés
403
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
jueves, 4 de marzo de 2021
-
Se supone que debía hacer un programa que cuente la cantidad de vocales que hay en una frase.
Ejemplo:
"Hola soy Pedro"
Vocal a/A = 1 Vocal e/E = 1 Vocal i/I = 0 Vocal o/O = 3 Vocal u/U = 0
Pero el programa que hice no funciona y aunque me pase horas buscando el error no lo encuentro.

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;

int main(){
int x=0;
while(x<=0){
cout<<"Digite el numero de caracteres: ";
cin>>x;
if(x<=0){
cout<<"Numero no valido!"<<endl;
}
}
char v[x];
fflush(stdin);
cin.getline(v,5,'\n');
strlwr(v);
int a[5];
for(int i=0;i<x;i++){
switch(v[i]){
case 'a': a[0]++;break;
case 'e': a[1]++;break;
case 'i': a[2]++;break;
case 'o': a[3]++;break;
case 'u': a[4]++;break;
}
}
char l[]="aeiou";
for(int i=0;i<5;i++){
cout<<"El numero de "<<l[i];
strupr(l);
cout<<"/"<<l[i];
strlwr(l);
cout<<" es de: "<<a[i]<<endl;
}
getch();
return 0;
}

2 respuestas

Message postés
403
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
jueves, 4 de marzo de 2021
74
tu codigo ligeramente modificado

#include<iostream>
#include<conio.h>
#include<cstring>
using namespace std;

int main(){
int x=0;
while(x<=0){
cout<<"Digite el numero de caracteres: ";
cin>>x;
if(x<=0){
cout<<"Numero no valido!"<<endl;
}
}
char v[x];
fflush(stdin);
cin.ignore();
cin.getline(v,x,'\n');
strlwr(v);
int a[5]={0,0,0,0,0};
for(int i=0;i<x;i++){
switch(v[i]){
case 'a': a[0]++;break;
case 'e': a[1]++;break;
case 'i': a[2]++;break;
case 'o': a[3]++;break;
case 'u': a[4]++;break;
}
}
char l[]="aeiou";
for(int i=0;i<5;i++){
cout<<"El numero de "<<l[i];
strupr(l);
cout<<"/"<<l[i];
strlwr(l);
cout<<" es de: "<<a[i]<<endl;
}
getch();
return 0;
}

1
Gracias

¡Estamos felices de haberte ayudado! ¿Te hemos sido de ayuda? ¡Déjanos un comentario! Evalúa a CCM

CCM 27205 usuarios nos han dicho gracias este mes


hola
no soy experto pero quiero aportar con mi punto de vista
int x=0; esta parte no seria mejor que lo declares como int x; ?...asi solamente
para que el while() funcione despues de que te pida el numero de caracteres y este sea agregado a la variable int x.
asi cuando se cumpla que while(x>0) {se hace el proceso de conteo de vocales}
if(x<=0){ te dira numero no valido}
bueno es mi aporte ????
Message postés
403
Date d'inscription
miércoles, 10 de enero de 2018
Estatus
Miembro
Última intervención
jueves, 4 de marzo de 2021
74
Mi respuesta sería que lo estarías confundiendo con el Do-While , manu092

¡Suscríbete a nuestra Newsletter!

Recibe nuestros mejores artículos

¡Suscríbete a nuestra Newsletter!