结构(struct)
结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。 结构中可以使用不同的数据类型。
1. 结构说明和结构变量定义
结构也是一种数据类型, 可以使用结构变量, 因此, 象其它 类型的变量一样, 在使用结构变量时要先对其定义。
定义结构变量的一般格式为:
struct 结构名
{
类型 变量名;
类型 变量名;
...
} 结构变量;
结构名是结构的标识符不是变量名。 类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和 无值型)。
构成结构的每一个类型变量称为结构成员, 它象数组的元素一样, 但数组中 元素是以下标来访问的, 而结构是按变量名字来访问成员的。
一个小demo
#include <stdio.h>
#include <stdlib.h>
struct personnel{
char name[20];
char sex[10];
int age;
double salsry;
};
void input(struct personnel pers[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("请依次输入员工的姓名,性别,年龄,月薪");
scanf("%s%s%d%lf",&pers[i].name,&pers[i].sex,&pers[i].age,&pers[i].salsry);
}
return ;
}
struct personnel find_max(struct personnel pers[],int n)
{
int i,index;
double tmp;
tmp=pers[0].salsry;
index=0;
for(i=1;i<n;i++)
{
if(pers[i].salsry>tmp)
{
index=i;
tmp=pers[i].salsry;
}
}
return pers[index];
}
struct personnel find_min(struct personnel pers[],int n)
{
int i,index;
double tmp;
index=0;
tmp=pers[0].salsry;
for(i=1;i<n;i++)
{
if(pers[i].salsry<tmp)
{
index=i;
tmp=pers[i].salsry;
}
}
return pers[index];
}
void print(struct personnel pers)
{
printf("员工姓名:%s\t性别:%s\t年龄:%d\t工资:%6.2f\t",
pers.name,pers.sex,pers.age,pers.salsry);
return ;
}
int main()
{
struct personnel pers[4],pers_max,pers_min;
input(pers,4);
printf("工资最高的员工:");
print(find_max(pers,4));
printf("工资最低的员工:");
print(find_min(pers,4));
return 0;
}