elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario  (Leído 1,067 veces)
nomsaro89

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario
« en: 2 Octubre 2019, 04:43 am »

Buenas noches.
Tengo un código el cual deberá pedir  al usuario que introduzca una frase y el programa le muestre: el tamaño de la cadena y el numero de veces que se repitieron las vocales en la frase.

Al compilar no hace la función del conteo de las vocales.
Agradeceria mucho si me pudieran ayudar a hacer que trabaje correctamente.
:)


Código
  1.  
  2. #include <conio.h>
  3. #include <stdio.h>
  4.  
  5. int main ()
  6. {
  7. char frase[30];
  8. int c;
  9. int  vocal_a=0, vocal_e=0, vocal_i=0, vocal_o=0, vocal_u=0;     /*variables para almacenar los contadores de cada vocal [color=black][color=orange][color=limegreen][color=maroon][color=purple][/color][/color][/color][/color][/color]*/
  10.  
  11. printf ("Ingresa una frase:  ");
  12. scanf ("%d", &frase[30], '\n');
  13.  
  14. for (int c=0; c<30; c++)
  15. {
  16.  
  17.    switch (frase [c])
  18.    {
  19.      case 'a': vocal_a++; break;
  20.      case 'e': vocal_e++; break;
  21.      case 'i': vocal_i++; break;
  22.      case 'o': vocal_o++; break;
  23.      case 'u': vocal_u++; break;
  24.    }
  25.  
  26. }
  27.  
  28.  
  29. printf ("\nVocal_a: %d", vocal_a);
  30. printf ("\nVocal_e: %d", vocal_e);
  31. printf ("\nVocal_i: %d", vocal_i);
  32. printf ("\nVocal_o: %d", vocal_o);
  33. printf ("\nVocal_u: %d", vocal_u);
  34.  
  35.  
  36. getch ();
  37. return 0;
  38. }
  39.  
  40.  



« Última modificación: 2 Octubre 2019, 05:04 am por engel lex » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 874



Ver Perfil
Re: Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario
« Respuesta #1 en: 2 Octubre 2019, 12:21 pm »

Eso no funciona primero porque en la función <scanf()> estás usando %d que es para variables de tipo entero (int) y además estás intentando guardar en la posición 30 del array <frase>. Esa posición no es accesible ya que si el tamaño es 30, las posiciones van de 0 a 29.
Para guardar cadenas es mejor que uses la función <fgets()>.
Código
  1. #include <stdio.h>
  2.  
  3. #define MAX_SIZE 30 // constante para determinar la longitud maxima de la cadena
  4.  
  5. int main(){
  6.    char frase[MAX_SIZE];
  7.  
  8.    printf("Introduce una frase: ");
  9.    fgets(frase, MAX_SIZE, stdin);
  10.  
  11.    // el resto del programa
  12.  
  13.    getchar();
  14.    return 0;
  15. }
El resto del programa está bien pero como recomendaciones te diría que no uses la librería <conio.h> (que sirve para la función <getch()>) porque no es estándar. Usa mejor la función <getchar()> que pertenece a la librería <stdio.h> y así sólo necesitas esa librería.

Y en el <switch> puedes hacer que cuente también las mayúsculas:
Código
  1. for(size_t i = 0; i < MAX_SIZE; ++i){
  2.    switch(frase[i]){
  3.        case 'a': case 'A': ++vocal_a; break;
  4.        case 'e': case 'E': ++vocal_e; break;
  5.        //...
  6.    }
  7. }


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
nomsaro89

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario
« Respuesta #2 en: 2 Octubre 2019, 13:15 pm »

Agradezco mucho su ayuda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines