内容正文:
C 语言程序设计
2023
翻转课堂实用教程
10.2 结构体数组
1
2
3
结构体数组的定义
结构体数组的使用
知识点
结构体数组案例分析
案例分析
结构体数组相关练习题
练习题
讲解本节的主要内容,方便学生的学习。
结构体数组,是指数组中每一个元素的类型都是结构体类型。结构体数组通常用来表示一组相同类型的实体,比如一个班级的学生。
10.2.1结构体数组知识点
学号
姓名
C语言成绩
1、结构体数组的定义形式如下 :
与定义结构体变量的方式类似,有三种方式:分开定义、同时定义、无类型定义,只是在定义变量的位置替换成定义数组。
10.2.1结构体数组知识点
例如:结构体数组也可以在定义的同时初始化。
struct candidate{
char name[10];
int no;
char grade[20];
int votes;
}stu[4] = { //如果对数组中全部元素赋初值,也可以省略数组个数4
{"Emily",20231000,"23软件工程",35},
{"Peter",20221022,"22网络工程",12},
{"Eric",20221030,"22信息安全",49},
{"Paul",20211040,"21金融学",26}
};
name no grade votes
stu[0] Emily 20231000 23软件工程 35
stu[1] Peter 20221022 22网络工程 12
stu[2] Eric 20221030 22信息安全 49
stu[3] Paul 20211040 21金融学 26
2、结构体数组的使用 :
结构体数组名[下标].结构体成员名
10.2.1结构体数组知识点
获取上例中Eric这个候选人的得票数:
name no grade votes
stu[0] Emily 20231000 23软件工程 35
stu[1] Peter 20221022 22网络工程 12
stu[2] Eric 20221030 22信息安全 49
stu[3] Paul 20211040 21金融学 26
stu[2].votes
先获取下标为2的
候选人Eric的结构体
获取候选人Eric的结构体成员votes的值
如何修改Emily的得票数为38
stu[0].votes = 38;
结构体数组的使用,先是通过数组下标获取某一个具体的结构体变量,再通过成员操作符“.”获取对应的结构体成员
Emily 20231000 23软件工程 35↙
Peter 20221022 22网络工程 12↙
Eric 20221030 22信息安全 49↙
Paul 20211040 21金融学 26↙
依次输出所有候选人的信息:
Emily 20231000 23软件工程 35
Peter 20221022 22网络工程 12
Eric 20221030 22信息安全 49
Paul 20211040 21金融学 26
10.2.2结构体数组案例分析
要求:编写程序输入所有候选人的信息,包括姓名、学号、年级和得票数。并按照输入的顺序输出所有候候选人的信息。
案例10.2.1 统计所有学生会主席候选人的信息
#include<stdio.h>
#define MAX 4
int main(){
int i;
struct candidate{
char name[10];
int no;
char grade[20];
int votes;
}stu[MAX];
for(i=0;i<MAX;i++){ //输入所有候选人的信息
scanf("%s %d %s %d",stu[i].name,&stu[i].no,stu[i].grade,&stu[i].votes);
}
printf("依次输出所有候选人的信息:
");
for(i=0;i<MAX;i++){
printf("%s %d %s %d
",stu[i].name,stu[i].no,stu[i].grade,stu[i].votes);
}
return 0;
}
运行结果
10.2.2结构体数组案例分析
要求:候选人的信息包括姓名、学号、班级和得票数。编写程序按照得票数从高到低的顺序输出候选人的信息,只需要输出候选人姓名:得票数,
案例10.2.2 从高到底输出各学生会主席侯选人的得票数
#include<stdio.h>
#define MAX 4
int main(){