C/Visual C - Contador

 
Vista:
sin imagen de perfil

Contador

Publicado por Humberto (1 intervención) el 24/10/2014 23:27:28
Hola buen dia, me dejaron una tarea de contar los diptongos de una frase, todo iba bien hasta que vi que no imprimia, me imprime ceros, sospecho que no estoy almacenando bien, alguien que me pueda ayudar? aqui esta el codigo

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
51
52
53
54
55
56
57
#include<stdio.h>
#include<conio.h>
#include<string.h>
 
int main (){
    char a, e, i, o, u, cad [80];//definimos cuantos caracteres puede tener la variable
    int d, x, y;//definimos variables
 
 
    printf("\n-Ingrese una frase cualquiera (Max. 80 Caracteres):\n");
    gets (cad);//leemos la frase
    d=strlen(cad);
    d=0;
 
    for (x=0; x<=d; x++){
    switch (cad [x]){
        case 'a':
        if (cad[x+1]=='a' || cad [x+1]=='e' || cad [x+1]=='i' || cad [x+1]=='o' || cad [x+1]=='u' && cad[y+1]=='a' || cad [y+1]=='e' || cad [y+1]=='i' || cad [y+1]=='o' || cad [y+1]=='u'){
        }
        d++;
        }
        break;
 
          case 'e':
        if (cad[x+1]=='a' || cad [x+1]=='e' || cad [x+1]=='i' || cad [x+1]=='o' || cad [x+1]=='u'&& cad[y+1]=='a' || cad [y+1]=='e' || cad [y+1]=='i' || cad [y+1]=='o' || cad [y+1]=='u'){
        d++;
        }
        break;
 
          case 'i':
        if (cad[x+1]=='a' || cad [x+1]=='e' || cad [x+1]=='i' || cad [x+1]=='o' || cad [x+1]=='u'&& cad[y+1]=='a' || cad [y+1]=='e' || cad [y+1]=='i' || cad [y+1]=='o' || cad [y+1]=='u'){
        d++;
        }
        break;
 
          case 'o':
        if (cad[x+1]=='a' || cad [x+1]=='e' || cad [x+1]=='i' || cad [x+1]=='o' || cad [x+1]=='u'&& cad[y+1]=='a' || cad [y+1]=='e' || cad [y+1]=='i' || cad [y+1]=='o' || cad [y+1]=='u'){
        d++;
        }
        break;
 
          case 'u':
        if (cad[x+1]=='a' || cad [x+1]=='e' || cad [x+1]=='i' || cad [x+1]=='o' || cad [x+1]=='u'&& cad[y+1]=='a' || cad [y+1]=='e' || cad [y+1]=='i' || cad [y+1]=='o' || cad [y+1]=='u'){
        d++;
        }
        break;
        }
 
 
        printf("%d",d);
 
 
        getch();
 
 
        }
        }
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

Contador

Publicado por Tom (619 intervenciones) el 25/10/2014 12:53:59
No inicializas la variable y por ningún sitio ... así que estás teniendo mucha suerte si aún te imprime algo aunque sea 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
sin imagen de perfil

Contador

Publicado por Juan (6 intervenciones) el 26/11/2014 15:49:15
A estas alturas imagino que ya habrás encontrado el error, pero sino es porque utilizas la misma variable para darle el largo de la cadena y el inicio de contador

d = len(cad);
d = 0;

Esto hace que el valor de d al entrar en el for sea 0, con lo cual ya no se ejecuta. Crea dos variables y ya verás como te suma. Eso sí, comprueba los if porque no entiendo mucho porque usas el cad[y+1] en vez de seguir con el cad[x+1]. Sobre todo porque el "y" no lo avanzas, sólo usas "x" para avanzar el for.
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