[ Foro de C ]
Realice un programa en C donde se pide una palabra y esta en un arreglo guarda todas las vocales que contiene, ya que la problemática pide que el tamaño del arreglo solo sea igual a la cantidad de vocales que contiene la palabra y al imprimir mediante una matriz deberá mostrar la cantidad de veces que se repite y las vocales que aparece:
Ejemplo la palabra ave:
1 1
[a] [e]
Aunque al rellenar y imprimir en el ciclo for() se muestra las vocales que contiene, al realizar un imprimir fuera solo me marca una vocal o otra letra.
El código:
#include <stdio.h>
#include <conio.h>
int main()
{
char frase[30];
int vocales=0,vocal_a=0,vocal_e=0,vocal_i=0,vocal_o=0,vocal_u=0;
int consonantes=0;
printf("Escriba una palabra:");
scanf("%s",&frase);
for(int i=0;i<=frase[i];i++){
switch (frase[i])
{
case 'a': vocal_a++;vocales++;
break;
case 'e': vocal_e++;vocales++;
break;
case 'i': vocal_i++;vocales++;
break;
case 'o': vocal_o++;vocales++;
break;
case 'u': vocal_u++;vocales++;
break;
}
}
printf("La palabra contiene la cantidad de %d vocales\n",vocales);
printf("Vocal a: %d\n",vocal_a);
printf("Vocal e: %d\n",vocal_e);
printf("Vocal i: %d\n",vocal_i);
printf("Vocal o: %d\n",vocal_o);
printf("Vocal u: %d\n",vocal_u);
char todos_vocales[vocales];
for(int i=0; i<vocal_a;i++)
{
todos_vocales[i]='a';
printf("[%c]",todos_vocales[i]);
}
for(int x=0;x<vocal_e;x++)
{
todos_vocales[x]='e';
printf("[%c]",todos_vocales[x]);
}
for(int y=0;y<vocal_i;y++)
{
todos_vocales[y]='i';
printf("[%c]",todos_vocales[y]);
}
for(int p=0;p<vocal_o;p++)
{
todos_vocales[p]='o';
printf("[%c]",todos_vocales[p]);
}
for(int q=0;q<vocal_u;q++)
{
todos_vocales[q]='u';
printf("[%c]",todos_vocales[q]);
}
getch();
}
hola emmanuel
te paso un código por si te sirve de ayuda:
https://www.online-ide.com/1OgcY9vTnr
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)