Dev - C++ - Programa que cuente la cantidad de vocales de una frase

   
Vista:

Programa que cuente la cantidad de vocales de una frase

Publicado por ruben r (15 intervenciones) el 26/05/2017 17:34:00
Buenas necesito ayuda, el programa consiste en hacer un programa que cuente el numero de vocales que se repiten en una frase. el programa debe contar con una funcion para resolver el problema, lo que llevo hecho es esto pero al momento de ejecutarlo no me cuenta las vocales me sale todo 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
#include<conio.h>
#include<string.h>
void contar(char frase[100]);
main()
{
      char frase[100];
      int a=0,e=0,i=0,o=0,u=0,z=0;
      printf("ESCRIBA UNA FRASE");
      gets(frase);
      printf("\n La frase escrita es:%s",frase);
      printf("\n VOCAL   \t   Repite");
      printf("\n  A      \t    %d",a);
      printf("\n  E      \t    %d",e);
      printf("\n  I      \t    %d",i);
      printf("\n  O      \t    %d",o);
      printf("\n  U      \t    %d",u);
      getch();
}
void contar(char frase[100])
{
     int a=0,e=0,i=0,o=0,u=0;
     for(int x=0;x<100;x++){
	switch(frase[x]){
		case 'a': a++; break;
		case 'e': e++; break;
		case 'i': i++; break;
		case 'o': o++; break;
		case 'u': u++; break;
 
	 }
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Programa que cuente la cantidad de vocales de una frase

Publicado por juanki (57 intervenciones) el 26/05/2017 19:30:54
Hola

Has declarado la función contar ¡¡ pero no la llamas en ningún lado !! por lo tanto nunca se ejecuta y nunca cuenta las vocales, tendrás que llamarla después de que el usuario introduzca la frase.

Además, dentro de esa función has declarado las variables en las que almacenas las veces que está cada vocal, pero esas variables son locales a la función, por lo tanto, aunque la llames, siempre te va a dar 0, pues tu usas para mostrar los resultados las que declaras en main y esas nunca se actualizan.

O se las pasas como argumento a la función o las declaras globales.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa que cuente la cantidad de vocales de una frase

Publicado por javi (1 intervención) el 26/05/2017 20:07:20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <iostream>
#define numVocales 5
#define tamFrase 100
 
void cuentaVocales( char frase[] , char vocales[] )
{
    ///Inicializa vocales a 0
    for( int i=0; i< numVocales; i++)
        vocales[i] = 0;
 
    for( int i=0; i < tamFrase; i++)
    {
        switch(frase[i])
        {
            case 'a': vocales[0]++; break;
            case 'e': vocales[1]++; break;
            case 'i': vocales[2]++; break;
            case 'o': vocales[3]++; break;
            case 'u': vocales[4]++; break;
        }
    }
}
 
 
void muestraVocales(char vocales[])
{
    printf(" a: %d\n", vocales[0] );
    printf(" e: %d\n", vocales[1] );
    printf(" i: %d\n", vocales[2] );
    printf(" o: %d\n", vocales[3] );
    printf(" u: %d\n", vocales[4] );
 
}
 
using namespace std;
 
int main()
{
    char frase[tamFrase],
         vocales[numVocales];
 
    printf("Escriba una frase:\n" );
    gets(frase);
 
    cuentaVocales(frase, vocales);
    muestraVocales(vocales);
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa que cuente la cantidad de vocales de una frase

Publicado por agustin (522 intervenciones) el 26/05/2017 21:06:36
Otro modo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include<stdio.h>
//#include<conio.h>
//#include<string.h>
 
enum {a,e,i,o,u};
 
void contar(char frase[100],int vocales[5]);
 
int main()
{
	char frase[100];
	int vocales[5],x;
 
	for(x=0;x<5;x++){
		vocales[x]=0;
	}
 
	printf("ESCRIBA UNA FRASE: ");
	gets(frase);
	printf("\n La frase escrita es: %s",frase);
	contar(frase,vocales);
	printf("\n VOCAL \t Repite");
	printf("\n A \t %d",vocales[a]);
	printf("\n E \t %d",vocales[e]);
	printf("\n I \t %d",vocales[i]);
	printf("\n O \t %d",vocales[o]);
	printf("\n U \t %d",vocales[u]);
	getchar();
	return 0;
}
void contar(char frase[100], int vocales[5])
{
	for(int x=0;frase[x] !='\0' && frase[x] !='\n';x++){
		switch(frase[x]){
			case 'a': case 'A': vocales[a]++; break;
			case 'e': case 'E': vocales[e]++; break;
			case 'i': case 'I': vocales[i]++; break;
			case 'o': case 'O': vocales[o]++; break;
			case 'u': case 'U': vocales[u]++; break;
		}
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar