【结构体】
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
定义结构体的一般形式为:
struct 结构体名
{
成员类型 成员名;
......
成员类型 成员名;
};
几种定义结构体变量的实现方法:
struct 结构体名
{
成员类型 成员名;
......
成员类型 成员名;
} 变量名1,变量名2 ......;
也可以去掉结构体名,直接定义结构体变量。
struct
{
成员类型 成员名;
......
成员类型 成员名;
} 变量名1, 变量名2,... ...;
还可以先定义结构体,再定义结构体变量。
struct 结构体名
{
成员类型 成员名;
......
成员类型 成员名;
};
struct 结构体名 变量名1,变量名2,... ... ;
注意:结构体为它的每一个成员都分配存储空间。
#include <stdio.h>
struct personnel
{
char name[20];
char sex[10];
int age;
double salary;
};
void input(struct personnel pers[],int n)
{
int i;
for(i=0; i<n; i++)
{
printf("请输入员工的姓名:\n");
scanf("%s", &pers[i].name);
printf("请输入员工的性别:\n");
scanf("%s", &pers[i].sex);
printf("请输入员工的年龄:\n");
scanf("%d", &pers[i].age);
printf("请输入员工的月薪:\n");
scanf("%lf", &pers[i].salary);
}
return ;
}
struct personnel find_max(struct personnel pers[], int n)
{
int i, index;
double tmp;
tmp = pers[0].salary;
for(i=1; i<n; i++)
{
if(pers[i].salary > tmp)
{
index = i;
tmp = pers[i].salary;
}
}
return pers[index];
}
struct personnel find_min(struct personnel pers[], int n)
{
int i, index;
double tmp;
tmp = pers[0].salary;
for(i=1; i<n; i++)
{
if(pers[i].salary < tmp)
{
index = i;
tmp = pers[i].salary;
}
}
return pers[index];
}
void print(struct personnel pers)
{
printf(" 员工姓名:%s\t性别:%s\t年龄:%d\t月薪:%6.2f\n",
pers.name,pers.sex,pers.age,pers.salary);
return;
}
void main()
{
struct personnel pers[4], pers_max, pers_min;
input(pers, 4);
pers_max=find_max(pers, 4);
pers_min=find_min(pers, 4);
printf("\n工资最高的员工信息\n");
print(pers_max);
printf("\n工资最低的员工信息\n");
print(pers_min);
return;
}