struct en C HOJA DE EJERCICIOS PARA RESOLVER: STRUCT EN C 1. La información de todos los empleados de la empresa DATASYSTEM está almacenada en una variable de tipo struct llamada “empleado”. La información con que se cuenta de cada empleado es: nombre, sexo y sueldo. Por tanto se pide: Realizar un programa en C que lea en un array de estructuras los datos de los N trabajadores de la empresa y que imprima los datos del empleado con mayor y menor salario. Solución: #include<stdio.h> struct empleado { char nombre[30]; char sexo[12]; float salario; }; void main() { struct empleado emp[100]; int e,nemp,pmay,pmen; float mayor=0.0, menor=9999.0; printf("Introduzca el numero de empleados: "); scanf("%d",&nemp); for(e=0;e<nemp;e++) { printf("\n"); printf("Nombre[%d]: ",e+1); scanf("%s",emp[e].nombre); printf("Sexo[%d]: ",e+1); scanf("%s",emp[e].sexo); printf("Salario[%d]: ",e+1); scanf("%f",&emp[e].salario); if(emp[e].salario>mayor) { mayor=emp[e].salario; pmay=e; } if(emp[e].salario<menor) { menor=emp[e].salario; pmen=e; } } printf("\n\n%s es el trabajador con MAYOR salario\n",emp[pmay].nombre); printf("%s es el trabajador con MENOR salario\n",emp[pmen].nombre); } 1 struct en C Ejemplo de Salida: 2. A partir de la declaración de las siguientes estructuras realice un programa en C que lea el array “ats” y devuelva los datos (nombre, país, deporte) del atleta que ha ganado mayor número de medallas. struct datos { char nombre[40]; char pais[25]; }; struct atleta { char deporte[30]; struct datos pers; int nmedallas; }; struct atleta ats[30]; 2 struct en C Solución: //atletas.c #include<stdio.h> struct datos { char nombre[40]; char pais[25]; }; struct atleta { char deporte[30]; int nmedallas; struct datos pers; }; //Array de Estructuras struct atleta ats[3]; void main() { int a,posmay,maynmed=0; for(a=0;a<3;a++) { printf("\n"); printf("Nombre[%d]: ",a+1); scanf("%s",ats[a].pers.nombre); printf("Pais[%d]: ",a+1); scanf("%s",ats[a].pers.pais); printf("Deporte[%d]: ",a+1); scanf("%s",ats[a].deporte); printf("Numero de Medallas[%d]: ",a+1); scanf("%d",&ats[a].nmedallas); } //nmed=ats[0].nmedallas; for(a=1;a<3;a++) { if(ats[a].nmedallas>maynmed) { posmay=a; maynmed=ats[a].nmedallas; } } printf("\n\t****DATOS DEL ATLETA CON MAYOR NUMERO DE MEDALLAS****\n"); printf("NOMBRE: %s\n",ats[posmay].pers.nombre); printf("PAIS: %s\n",ats[posmay].pers.pais); printf("DEPORTE: %s\n",ats[posmay].deporte); printf("NUMERO DE MEDALLAS: %d\n",ats[posmay].nmedallas); } 3 struct en C Ejemplo de Salida: 4