文档介绍:实用C语言程序设计教程
Visual C++
模块6 组合数据类型
任务1 结构体
学习目标
掌握结构体类型的说明、结构体变量的定义及初始化方法、掌握结构体变量成员的引用、结构体数组的使用、领会存储动态分配和释放。
案例讲解
案例1 学生信息的描述
假定一个学生的信息包括学号,姓名,性别,成绩,在数据处理中,我们通常把一个学生信息作为整体,编程构造一个学生类型,并实现其输入,输出。
2. 编程分析
(1)C语言中的结构体类型可以将不同类型的信息组织成一个整体,构造出一种新的类型,这里我们可以构造学生类型,学生是我们处理信息的基本单位。
(2)新构造的类型没有对应的输入,输出格式控制符,需要把学生类型包含的各个成员分别输出,可以定义函数来实现学生信息的输入和输出。
3. 编写源程序
#include <>
struct student
{
int number;
char name[10];
float score;
};
void printStu(struct student *p);
struct student inputStu( );
main( )
{
struct student stu1;
printf("请输入一个学生的信息(学号姓名成绩)\n");
stu1=inputStu( );
printf("结构体变量中的内容是:\n");
printStu(&stu1);
}
void printStu(struct student *p)
{
printf("%d %s %f\n",p->number,p->name,p->score);
}
struct student inputStu( )
{
struct student stu;
scanf("%d%s%f",&,,&);
return stu;
}
图6-1 案例1运行结果
案例2 职工信息的查询
有6个职工的信息,其中每个职工信息包括编号、姓名、工资,请找到工资最高的职工并输出其信息。
2. 编程分析
(1)把编号,姓名,工资组合成一个整体,作为新的数据类型,用这个类型定义长度为6的数组,再利用数组中查找最大值的算法来解决问题。
(2)伪代码如下:
定义结构体:职工
main( )
{
定义结构体数组用于保存6个职工信息;
定义变量i用于控制循环次数;
定义变量k记录工资最高的职工;
循环输入6个职工的信息;
设k的初值为0(从第0位职工开始找);
循环变量i=1;
循环比较大小:
{ 如果第i个职工的工资>第k个职工的工资
k=i;
}
输出第k个(即工资最高的)职工的信息;
}
3. 编写源程序
#include <>
struct worker
{
int number;