Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Programación en lenguaje C: ¿Crear una matriz de estructura?

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

{

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" );

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[])

{

int i;

float suma=0;

for(i=0;i

suma+=emes[i].salario;

devuelve suma/M;

}