C/Visual C - intentando crear un array de 5 personas usando la struct

   
Vista:

intentando crear un array de 5 personas usando la struct

Publicado por Jose (6 intervenciones) el 20/06/2016 16:36:00
Saludos, estoy intentando crear un array con esta estructura, pero no se que estoy asiendo mal, me pueden ayudar...

estoy intentando crear un array de 5 personas, usando la struct, para solicitar los datos muy bien, pero al momento de mostrarlo, solo me muestra los datos del ultimo empleado que registre...

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
#include <stdio.h>  
#include <stdlib.h>
 
		struct trabajador
		{
		char nom[25];
		char ape[25];
		char ced[15];
		};
 
main(){
int n;
	struct trabajador nomina[5]; {
 
		for (n=0; n<5; n++)
			{
			printf("Digite Nombre: ");
			scanf("%s",&nomina[n].nom );
			printf("Digite Apellido: ");
			scanf("%s",&nomina[n].ape);
}
system("cls");
 
			for (int n=0; n<5; n++){
				system("cls");
				printf("\n\nDATOS DE EMPLEADO\n ");
				printf("Nombre\t%s\n ",nomina[n].nom );
				printf("Apellido\t%s\n ",nomina[n].ape );
            }
}
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

intentando crear un array de 5 personas usando la struct

Publicado por Alfredo (8 intervenciones) el 20/06/2016 16:52:44
Al salir del ciclo for, n tiene el valor del ultimo elemento, si quieres imprimir todos, tienes que crear otro ciclo for e inicializar de nuevo en 0 el valor de n

Suerte !!!
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 Diana

intentando crear un array de 5 personas usando la struct

Publicado por Diana (3 intervenciones) el 21/06/2016 02:57:50
Estas abriendo una llave que no va en la estructura dentro del main, quita esa.
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

intentando crear un array de 5 personas usando la struct

Publicado por agustin (174 intervenciones) el 21/06/2016 10:43:22
La llave de después de la estructura sobra y además ¿eso compila?¿no te da ningún error? Lo digo porque al inicio de main creas una variable de tipo int llamada n y en el segundo for vuelves a hacer lo mismo con lo que tienes dos variables con el mismo nombre que comparten el ámbito ya que la primera, al no declararla en el for, tiene como ámbito todo el main.
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

intentando crear un array de 5 personas usando la struct

Publicado por Jose (6 intervenciones) el 21/06/2016 15:26:03
saludos agustin, compila sin errores, declare una variable diferente para el for que me debe de mostrar los datos, pero aun asi, solo me muestra el ultimo empleado que registro, y cuando quito la llave que me sobra, cada vez que digito un empleado me muestra los datos ahi mismo, la idea es digitar los 5 empleados primero y luego mostrarlo los 5 empleados por pantalla.
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

intentando crear un array de 5 personas usando la struct

Publicado por Jose (6 intervenciones) el 21/06/2016 15:23:28
saludos Diana, cuando quito la llave dentro del main, lo que hace el programa es que cada vez que digite los datos de un empleado, me muestra los datos de una vez, la idea es que me deje introducir los datos de los 5 empleados, y luego me lo muestre todo
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

intentando crear un array de 5 personas usando la struct

Publicado por Jose (6 intervenciones) el 21/06/2016 15:32:56
una pregunta, la forma correcta de declarar el array es asi.

1
2
3
4
5
6
7
8
9
10
11
12
13
struct trabajador
{
	char nom[25];
	char ape[25];
	char ced[15];
 
};
 
 
main()
{
	struct trabajador nomina[3];
}


o de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
struct trabajador
{
	char nom[25][5];
	char ape[25][5];
	char ced[15][5];
};
 
 
main()
{
 
	struct trabajador nomina[3];

especificando el tamaño del array tambien en las variables dentro de struct
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

intentando crear un array de 5 personas usando la struct

Publicado por agustin (174 intervenciones) el 21/06/2016 23:47:47
Ok, ya me di cuenta de tu error. Lo tienes bien pero tienes que quitar la llave que te dije que realmente no influye para nada pero sobra y tu fallo esta aqui:
1
2
3
4
printf("Digite Nombre: ");
scanf("%s",&nomina[n].nom );
printf("Digite Apellido: ");
scanf("%s",&nomina[n].ape);
El & es para referenciar la dirección pero eso en el caso de los arrais de caracteres no se pone ya que un array de caracteres es como un puntero que apunta al primer elemento del array. Tienes que ponerlo asi:
1
2
3
4
printf("Digite Nombre: ");
scanf("%s",nomina[n].nom );
printf("Digite Apellido: ");
scanf("%s",nomina[n].ape);
Prueba lo y nos cuentas.
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