Programación en lenguaje C: ¿Crear una matriz de estructura?
Análisis del significado de la pregunta:
1. Es necesario definir dos estructuras, una es la fecha, año, mes y día, y la otra es el empleado.
2. El programa contiene tres funciones: 1. Entrada de matriz de estructura. 2. Salida de la matriz de estructura. 3. Calcula el salario medio. Según los hábitos de programación, las tres funciones deben escribirse como funciones independientes para facilitar la expansión y la llamada.
ps: El número de empleados se define como una constante, que también es un hábito de programación y es fácil de modificar. Además, para la verificación de la fecha, solo escribí la detección del mes para su referencia. Es necesario ampliarlo y la verificación de la función debe escribirla usted mismo.
#include
#define M 3//Número máximo de empleados
typedef struct date
{< / p>
int año;
int mes;
int día;
}YMD;
typedef struct empleado
p>
{
int id;//número de empleado
char nombre[20];//nombre
YMD fecha;//fecha
int salario;
}EME;
void inputInfo(EME emes[]);//Entrada
void outputInfo(EME emes []);//Salida
float getAvg(EME emes[]);//Encuentra el salario promedio
int main()
{
EME emes[M];//Matriz de estructura de empleados
inputInfo(emes);
outputInfo(emes);
printf(" Salario promedio: %f",getAvg(emes));
devuelve 0;
}
void inputInfo(EME emes [])
{
int i;
for(i=0;i { p> printf( "Ingrese la información del empleado %d:\n",i+1); printf("ID del empleado:"),scanf("%d",&emes [i].id); printf("Nombre:"),scanf("%s",emes[i].nombre); printf("Fecha (ingrese año, mes y día respectivamente, separados por espacios) :"),scanf("%d%d%d",&emes[i].date.year,&emes[i].date.month,&emes[i].date .day); if(emes[i].date.month>12 || emes[i].date.month<=0)//Cuando la entrada de fecha no se puede verificar, vuelva a ingréselo. Puede escribir una función separada para verificación. ¡Esto es solo como referencia! { printf("La fecha ingresada no coincide, ¡vuelva a ingresar!\n\n"),i--; continuar; } printf("Salario:"),scanf("%d",&emes[i].salario); printf("\n "); } } void salidaInfo(EME emes[]) { int i; printf("La información de todos los empleados es: ----------------------------\n" ); p> for(i=0,printf("Empleado %d información:\n",i+1);i { printf("ID de trabajo: %d\n",emes[i].id); p> printf("Nombre: %s\n",emes[i].nombre); printf("Fecha: %04d-%02d-%02d\n",emes[ i].fecha.año,emes[i].fecha.mes,emes[i].fecha.día); printf("Salario: %d\n",emes[i].salario ); printf("\n"); } } float getAvg(EME emes[]) p> { int i; float suma=0; for(i=0;i suma+=emes[i].salario; devuelve suma/M; }