Dev - C++ - Leer los datos de 5 alumnos (nombre, edad, nota). Usar struct y vector.

 
Vista:
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 25/03/2021 01:23:11
Que tal gente

Estoy intentando resolver la última parte de este ejercicio, que tengo muchas dudas. Acá dejo el enunciado y el código hasta donde logré hacer. NO ME COMPILA !!!!

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
133
134
/********************************************************************************************************************************
Ejercicio:
Leer los datos de 5 alumnos (nombre, edad, nota). Usar struct y vector.
Se debe implementar todo con funciones. Mostrar los datos de los 5 alumnos y finalmente cuantos de ellos tienen su nombre terminado en la letra z.
Diseñar una función booleana que devuelva si una cadena de caracteres  termina en una letra que también se pasar como parámetro.
********************************************************************************************************************************/
Este es código hasta donde lo llegue a implementar. dejo comentarios en el mismo.
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
//--------------------------
 
struct alumno
{
  char nombre[30];
  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\n\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]);
   }
};
 
//-----------------------------------------------------------------------------------------------------------------------------------------
/*Esta función booleana  nos dio como ejemplo el profesor que devuelva si una cadena de caracteres termina en una  letra que también se pasara como parámetro. */
bool letraZ(char cade[])
{
   //cade me da lo que hay dento de esa ulitima posicion. (indico la ultima posición del vector -1)
   if(cade[strlen(cade)-1] == 'z')
       return true;
   else
       return false;
 
}
 
void pausar()
{
   printf("\n");
   system("pause");
 
}
 
 
//--------------------------------------------------------------------------------------
 
int main()
{
    struct alumno a;
    struct alumno nota[2];
    int vec[4];
 
    int i;
    int cont =0;
 
    leer_nota(nota);
    mostrar_nota(nota);
 
   for(i=1;i<=2;i++)
   {
      //Este ejemplo lo dejo el profesor !!!
      if(letraZ(vec[i].nombre) == true)
         cont++;
      else
         (letraZ(vec[i].nombre) == false)
 
   }
 
 
 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
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Alfil (1444 intervenciones) el 25/03/2021 11:12:33
No termino de entender la utilidad de las funciones

1
2
void leer_nota(struct alumno nota[]);
void mostrar_nota(struct alumno nota[]);


si cada alumno tiene más de una nota, ese dato debería ir en el struct Alumno

1
2
3
4
5
6
7
struct Alumno
{
    char nombre[30];
    int edad;
    int nota1;
    int nota2
};

si son muchas notas se puede poner como un vector

1
2
3
4
5
6
struct Alumno
{
    char nombre[30];
    int edad;
    int notas[5];
};

Tampoco entiendo la finalidad de la función

1
bool letraZ(char cade[]);

salvo que haya que sacar algún tipo de informe adicional.



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
#include <stdio.h>
 
struct Alumno
{
    char nombre[30];
    int edad;
    int nota;
};
 
void leerAlumno(struct Alumno &a);
void mostrarAlumnos(struct Alumno a[], int sz);
 
int main()
{
    Alumno a[5];
 
    for (int i = 0; i < 5; i++)
        leerAlumno(a[i]);
 
    mostrarAlumnos(a, 5);
 
    return 0;
}
 
void leerAlumno(struct Alumno &a)
{
    fflush(stdin);
 
    printf("\n__________________________________ \n\n");
    printf(" Ingrese nombre: ");
    gets(a.nombre);
 
    printf(" Ingrese edad: ");
    scanf("%d",&a.edad);
 
    printf(" Ingrese nota: ");
    scanf("%d",&a.nota);
}
 
void mostrarAlumnos(struct Alumno a[], int sz)
{
    for (int i = 0; i < sz; i++)
    {
        printf("\n__________________________________ \n\n");
        printf(" Datos del Alumno: ");
        printf("\n Nombre: %s", a[i].nombre);
        printf("\n Edad : %d", a[i].edad);
        printf("\n Nota: %d", a[i].nota);
    }
    printf("\n");
}
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
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 25/03/2021 15:59:09
Hola Alfil,

Haber si te puedo aclarar el enunciado

Lo que nos pidió el profesor son varias cosas.

1°) El programa debe estar modularizado o sea que se debe utilizar sí o sí las funciones. (Porque estamos viendo funciones)

2°) Se debe leer y mostrar datos de 5 alumnos (El nombre, la edad y la nota). Para eso debemos usar "struct y vector". (Porque estamos viendo esos temas).

3°) Si te fijas, al final de todo el enunciado dice:

- Mostrar los datos de los 5 alumnos (nombre, edad y nota) Solo se deben mostrar los datos !!! Pero debemos contar los apellidos de aquellos alumnos que terminan con la letra "z".

- Cuantos alumnos tienen su nombre que terminan con la letra "z". Pide contar la cantidad de alumnos con la letra z, si es que se
introdujeron los nombre que terminan con la letra z !!! Para este caso, nos pide que implementemos una función de tipo
booleana ejemplo, bool TerminaZ() y que tenga como parámetro una cadena de caracteres.


Solo pide contar los alumnos que tengan sus nombres terminados con la letra z !! nada más !!

Si me podes dar una mano te lo agradecería Porque estoy probando de varias formas y no me compila !!!


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
/* Esta función booleana  nos dio como ejemplo el profesor, que devuelva si una cadena de caracteres termina en una  letra.
    char cade[]   nos dio como ejemplo que debemos pasar como parámetro de la función. Ojo solo a modo de ejemplo !!!     */
 
 
bool letraZ(char cade[])
{
   //cade me da lo que hay dento de esa ulitima posicion. (indico la ultima posición del vector -1)
   if(cade[strlen(cade)-1] == 'z')
       return true;
   else
       return false;
 
 
 //----------------------------------------------------------------------------------------------------------------------------------------------------------
 
En el programa principal main()  Me tira error en la funcion  ---->    leer_letraZ(palabra[i].cade) == true)
 
int main()
{
    struct alumno a;
    struct alumno nota[2];
 
 
    const int N=2;
    int i;
    int cont =0;
    int palabra[N];
 
    leer_nota(nota);
    mostrar_nota(nota);
 
   //ciclo para contar cuantos de ellos tienen la letra z
   for(i=1;i<=2;i++)
   {
      if(leer_letraZ(palabra[i].cade) == true)
         cont++;
      //else
        // (leer_letraZ(vec[i]) == false)
 
 
   }
 
   //mostrar_nro("\n La cantidad son: ",leer_letraZ( ));
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
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 25/03/2021 17:39:02
Hola Alfil,

Ya casi lo tengo.

Esta sería la función correcta de tipo booleana. que me devuelve verdadero o falso

1
2
3
4
5
6
7
8
9
bool leer_letraZ(char cad[10], char z)
{
 //cade 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 1;
   else
       return 0;
 
}


Lo que debo resolver, dentro del programa principal main() me cuente los nombres que se ingresaron con la letra z !!!! Eso es todo.
Para eso debo utilizar un vector para recorrer los nombres, que me cuente los nombres terminados con la letra z.

El código es algo así !!!

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
int main()
{
    struct alumno a;
    struct alumno nota[2];
    int i;
    int cont =0;
 
    leer_nota(nota);
    mostrar_nota(nota);
 
    char cade[10];
    char letra;
 
   for(i=1;i<2;i++)
   {
        printf("\n Ingrese cadena: ");
        gets(cade);
        fflush(stdin);
 
        printf("\n Letra de terminacion: ");
        scanf("%c",&letra);
        fflush(stdin);
 
        if(leer_letraZ(cade,letra))
        {
            printf("%s termina con la letra %c\n",cade,letra);
            cont++;
        }
        else
        {
            printf("%s no termina con la letra %c\n",cade,letra);
 
        }
   }
 
   pausar();
 
   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
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Rodrigo (539 intervenciones) el 25/03/2021 19:13:50
Si el enunciado pide explicitamente comparar con la letra 'z', no deberias pedirla al usuario ni pasarla como parametro a la funcion leer_letra.
Ya tenias una definicion que tenia esto, por que la cambiaste?
Si es por un error de compilacion, intuyo que era porque no cerraste la llave de la definicion de la funcion, lo que estaba hecho parecia correcto.
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
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 25/03/2021 19:50:27
Rodrigo, gracias por tu ayuda !!!

Pero en relación a la función que vos mencionas. Lo saque del ejercicio 6) que te copie abajo, es muy parecido, me compila y funciona. Con la única salvedad que no utiliza struct ni un vector para recorrer los nombres. Este código, tiene una función muy parecida al ejercicio que me pide saber si los nombres termina con una letra z. Yo lo tome como ejemplo nada más.

El problemas no es la función !!! si no dentro del programa principal main() en el vector que estoy seguro que estoy haciendo algo mal. Por eso necesito ayuda para entender que es lo que estoy haciendo mal.

Este pedacito de código que yo mismo lo modifiqué recién, es pare del programa principal main(), pertenece al primer ejercicio que publiqué !!! Pero me tira Error !!!!

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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
  //Esto esta en el programa principal  main()
 
  //mostrar_nro("\n La cantidad son: ",leer_letraZ( ));
 
   for(i=1;i<2;i++)
   {
 
         if(leer_letraZ(vec[i].(cade[],letra) == true)
        {
           printf("%s termina con la letra %c\n",cade,letra);
          cont++;
       }
       else
       {
          printf("%s no termina con la letra %c\n",cade,letra);
       }
 
 
  }
 
/---------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
Este ejercicio 6 es solo para mostrarte la función --->  int terminar(char cad[10],char a )  ésta función, compila bien pero no es este el ejercicio  del cual tengo el problemas. (Solo lo puse como muestra ).
 
 
Ejercicio 6) Hacer una función que determine si una cadena de caracteres
termina con una letra dada. La letra se pasará por parámetro. Luego leer tres
cadenas y una letra por cada una e informar si terminan o no con la letra asociada.
 
************************************************************************************/
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//------------------------------------------
int termina(char cad[10],char a)
{
    if (cad[strlen(cad)-1]==a)
        return 1;
    else
        return 0;
}
 
//------------------------------------------------------------
int main()
{
   char cade[10];
   char c;
   char letra;
 
   for(int f=0;f<3;f++)
   {
        printf("\n Ingrese cadena: ");
        gets(cade);
        fflush(stdin);
 
        printf("\n Letra de terminacion: ");
 
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
Este es ejercicio del cual tengo problemas dentro del programa principal main()  me tira Error en el vector cade[]  !!!!
 
/***************************************************************************************************************************************************
Ejercicio: Leer los datos de 5 alumnos (nombre, edad, nota). Usar struct y vector.
Se debe implementar todo con funciones. Mostrar los datos de los 5 alumnos y finalmente cuantos de ellos tienen su nombre terminado
en la letra z.
Diseñar una función booleana que devuelva si una cadena de caracteres  termina en una letra que también se pasar como parámetro.
********************************************************************************************************************************************************/
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
//--------------------------
 
struct alumno
{
  char nombre[30];
  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\n\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 que devuelva si una cadena de caracteres termina en una
  letra que también se pasara como parametro. */
 
bool leer_letraZ(char cad[10], char z)
{
 //cade 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;
   else
       return false;
 
 
}
//procedimiento que muestra la cantidad
void mostrar_nro(char cad[30] ,int p)
{
  printf("\n %s %d ",cad, p);
 
}
 
void pausar()
{
   printf("\n");
   system("pause");
 
}
 
//-----------------------------------------------------------------------------
 
int main()
{
    struct alumno a;
    struct alumno nota[2];
    int i;
    int cont =0;
 
    leer_nota(nota);
    mostrar_nota(nota);
 
    char cade[10];
    char letra;
    int vec[2];
 
   //mostrar_nro("\n La cantidad son: ",leer_letraZ( ));
 
   for(i=1;i<2;i++)
   {
 
     if(leer_letraZ(vec[i].(cade[],letra) == true)
     {
       printf("%s termina con la letra %c\n",cade,letra);
        cont++;
     }
     else
     {
       printf("%s no termina con la letra %c\n",cade,letra);
     }
 
   }
   pausar();
 
   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
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Rodrigo (539 intervenciones) el 25/03/2021 21:20:04
Puedes copiar el error que te aparece, y la linea asociada a este?
Decir "me tira error" no ayuda a ayudarte pues es muy ambiguo, hay que adivinar donde y que error aparece. Tu ya lo tienes, copialo para saber.
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
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 25/03/2021 23:30:29
Si Ok Rodrigo te paso el error

Mil disculpas !!!


Acá te paso la línea donde me tira el error y el mensaje del error


Si te fijas en el el programa principal main() en el código anterior, en la línea 195 es donde me tira el error.

1
if(leer_letraZ(vec[i].(cade[],letra) == true)

Message: request for member of non-aggregate type before '.' token


Aclaración: es en la función -----> leer_letraZ(vec[i].(cade[],letra) == true)

Entiendo que dentro de la función, se puede leer un vector y con un ciclo for recorrerlo, pero estoy intentando ver de que manera me lea los nombres de las personas que tienen la ultima letra terminada en "z" y me los cuente. Eso es todo lo que debe hacer el programa. Mostrar los nombres de los alumnos que termina con la letra z y me los cuente nada más !!!

Gracias !!!
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
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Rodrigo (539 intervenciones) el 26/03/2021 02:20:29
Tu programa declara a "vec" como un arreglo de 2 enteros.
vec[i] es uno de los enteros de ese arreglo.

Tu tienes que pasar probablemente un string?

Tal vez quieres usar el arreglo de alumnos, acceder a uno de ellos, acceder al nombre de ese alumno?
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
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 26/03/2021 02:35:45
Claro, si.

Te comento cual es punto, me pide ingresar los datos de los alumnos, "nombre, edad y nota". Pero la consigna principal y la mas importante cuando ingreso los nombres de los alumnos, me cuente los nombres de aquellos que terminan con la letra "z".


Esta función la saque de un ejercicio parecido y funciona !! El problema, estoy seguro esta en el programa principal main() algo estoy haciendo mal !!!!!!

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
bool leer_letraZ(char cad[],char z)
{
 //cade 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;
   else
       return false;
 
}
 
//-----------------------------------------------------------------------------------
programa principal main()
 
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=0;i<2;i++)
   {
     if(leer_letraZ(cade,letra) == true)
     {
        cont++;
 
        //printf("\n Hay letra z ",leer_letraZ(cade,letra));
     }
     else
     {
       (leer_letraZ(cade,letra) == false);
         cont++;
         //printf("\n No hay letra z ",leer_letraZ(cade,letra));
 
     }
   }
   mostrar_nro("\n La cantidad encontrada son: ",cont);
 
   pausar();
 
   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
Imágen de perfil de Gaston
Val: 114
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

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

Publicado por Gaston (40 intervenciones) el 29/03/2021 19:03:11
Hola Gente

Acá les comparto mi código en C. Compila y funciona. Devuelva si la última letra termina en una "z" y la contabiliza en caso contrario no la contabiliza


Rodrigo,

Acá te paso el código. Compila y funciona.

Devuelva si la última letra termina en una "z" y la contabiliza en caso contrario no la contabiliza . El programa debía hacer eso nada más.

Saludos.

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
/***************************************************************************************************************************************
Ejercicio:
Leer los datos de 5 alumnos (nombre, edad, nota). Usar struct y vector.
Mostrar los datos de los 5 alumnos y finalmente cuantos de ellos tienen su  nombre terminado en la letra z.
Diseñar una función booleana que devuelva si una cadena de caracteres  termina en una letra que también se pasar como parémetro.
*******************************************************************************************************************************/
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <math.h>
//------------------------
 
struct alumno
{
  char nombre[10];
  int edad;
  int nota;
 
};
 
 
//-----------------------------------
void leer_alumno(struct alumno &a)
{
    printf("\n Ingrese nombre:");
	gets(a.nombre);
	fflush(stdin);
 
    printf("\n La edad es: ");
	scanf("%d",&a.edad);
	fflush(stdin);
 
    printf("\n Leer nota: ");
	scanf("%d",&a.nota);
	fflush(stdin);
}
//-------------------------------------------------
void mostrar_alumno(struct alumno &a )
{
 
	printf ("\n Los datos de los Alumnos son: \n");
	printf ("\n Nombre: %s",a.nombre);
	printf ("\n Edad: %d",a.edad);
	printf ("\n Nota: %d",a.nota);
	printf ("\n");
 
}
 
//----------------------------------------------
 
bool termina_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()
{
   int i;
   int cont;
   struct alumno a;
   char cadena[10];
   char c;
 
   cont=0;
 
   for (i=1; i<=2; i++)
   {
     leer_alumno(a);
	 mostrar_alumno(a);
 
     if(termina_letraZ(cadena)==true)
         cont++;
 
   }
 
   printf("\n Cantidad de palabras terminadas en z: %d ",cont);
 
   printf("\n\n");
 
   pausar();
 
   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
1
Comentar