Dev - C++ - Contar los nombres ingresados y si tienen su nombre terminado en la letra z.

 
Vista:
sin imagen de perfil

Contar los nombres ingresados y si tienen su nombre terminado en la letra z.

Publicado por juan (3 intervenciones) el 26/03/2021 15:27:06
Hola gente

Si me pueden ayudar con este ejercicio que casi lo tengo resuelto !!!

Dejo el enunciado y el código en lenguaje C.

//---------------------------------------------------------------------------------------------------------------------------------------------

Leer los datos de 2 alumnos (nombre, edad, nota). Usar struct y vector.

Mostrar los datos de los 2 alumnos y finalmente cuantos de ellos tienen su nombre terminado en la letra z.

Se debe crear una función de tipo booleana que devuelva si una cadena de caracteres termina en una letra que también se pasar como parámetro.

Lo que pide puntualmente:

Dentro del programa principal, main() llamo a la función --> bool leer_letraZ(cade) de tipo booleana para que me devuelva
true o false, así lo pide el ejercicio. Y digo si el nombre terminado en la letra z está, que me cuente la letra z sino que no haga nada.

Problema: No logro que me cuente las letra z me marca 0 !!!

//--------------------------------------------------------------------------------------------------------------------------------------------------------------

Código completo:

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
//--------------------------
 
struct alumno
{
  char nombre[10];
  int edad;
  int nota;
 
};
 
// procedimiento para leer los datos
 
void leer_alumno(struct alumno &a)
{
   printf("__________________________________ \n");
   printf("\n");
   printf("\n Ingrese nombre: ");
   gets(a.nombre);
   fflush(stdin);
 
   printf("\n Ingrese edad: ");
   scanf("%d",&a.edad);
   fflush(stdin);
 
   printf("\n Ingrese nota: ");
   scanf("%d",&a.nota);
   fflush(stdin);
};
 
// procedimiento para visualizar el grupo de datos.
 
void mostrar_alumno(struct alumno a)
{
   printf("\n");
   printf("__________________________________ \n");
   printf("\n");
   printf("\n Datos del Alumno: ");
   printf("\n Nombre: %s", a.nombre);
   printf("\n Edad : %d", a.edad);
   printf("\n Nota: %d", a.nota);
   printf("\n");
 
};
 
//aca se observa el vector de tipo struct que se va a leer
 
void leer_nota(struct alumno nota[])
{
 
  int i;
 
  for(i=1;i<=2;i++)
  {
    leer_alumno(nota[i]);
  }
 
};
 
void mostrar_nota(struct alumno nota[])
{
   int i;
 
   for(i=1;i<=2;i++)
   {
     mostrar_alumno(nota[i]);
   }
};
 
/*función booleana devuelva si una cadena de caracteres termina en una letra,
  se pasara como parametro. */
 
bool leer_letraZ(char cad[])
{
  char z;
 
 //cad me da lo que hay dento de esa ulitima posicion. (indico la ultima posición del vector -1)
   if(cad[strlen(cad)-1]== z)
       return true;    //devuelvo verdadero si la encontro
   else
       return false;  //devuelvo falso si no la encontro
 
}
 
void pausar()
{
   printf("\n");
   system("pause");
 
}
 
//------------------------------------------------------------------
 
int main()
{
    struct alumno a;
    struct alumno nota[2];
 
    int i;
    char cade[10];
    char letra;
    char c;
 
    leer_nota(nota);
    mostrar_nota(nota);
 
    int cont=0;
 
   for(i=1;i<2;i++)
   {
 
       //llamo a la función leer_letraZ(cade)  y digo si la letra z está  en el nombre ingresado que la cuente. Pero no me
        esta contando me marca 0
 
        if(leer_letraZ(cade) == true)
          cont++;
 
       // printf("\n termina con la letra %d\n",cade,cont);
 
 
   }
 
   printf("\n cantidad de veces con la letra %d\n",cont);
 
   pausar();
 
   return 0;
 
}
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