学习情境二第六讲结构体的初始化和赋值

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11/29/201911/29/2019 1:58 AM
结构体数组应用举例
《C语言与数据结构》
【例4-20】已知学生成绩表,计算学生的平均成 绩和不及格的人数。
分析:
若用结构体数组来存储学生基本信息,而成绩作 为每个数组元素的一个成员,则在main函数中可直接 通过循环来完成题目所给的任务。
11/29/201911/29/2019 1:58 AM
源程序
调用集成 编译环境
11/29/201911/29/2019 1:58 AM
例4-21
【例4-21】建立同学通讯录。 分析:
《C语言与数据结构》
通讯录里面至少包含两方面内容:名字和电话号 码。可定义一个结构mem,里面有两个成员。然后定 义一个mem的结构体数组。可以通过初始化的方法给 数组赋初值,也可以通过输入函数给数组赋值。
struct stu {
int num; char name[20]; char sex; float score; } boy1,boy2; boy1.num=102; strcpy( , "Zhang ping" ); printf("input sex and score\n"); scanf("%c %f",&boy1.sex,&boy1.score); boy2=boy1; printf("Number=%d\nName=%s\n",boy2.num,); printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score); 11/29/201911/29/2019 1:58 }
结构体变量的初始化
《C语言与数据结构》
和其他类型变量一样,对结构体变量可以在定义时指定初始值。 【例4-18】外部结构体变量初始化。 源程序:
struct stu /* 定义结构 */ {
int num; char name[20]; char sex; float score; } boy2,boy1={102,"Zhang ping",'M',78.5}; void main() { boy2=boy1; printf("Number=%d\nName=%s\n",boy2.num,); printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score); }
类型不同的若干有序变量的集合。
11/29/201911/29/2019 1:58 AM
结构体变量的定义
《C语言与数据结构》
结构体变量有以下三种方法。 1.先定义结构,再说明结构变量。
2.在定义结构体类型的同时说明结构体变量。
3. 直接说明结构变量。
11/29/201911/29/2019 1:58 AM
《C语言与数据结构》
结构体数组的定义方法和结构变量相似,只需说 明它为数组类型即可。例如:
struct stu {
int num; char name[20]; char sex; float score; } boy[5]; 定义了一个结构数组boy,共有5个元素, b
例4-20流程图
《C语言与数据结构》
定义结构体数 组 boy, 并 赋
初值
def main
c赋 值 0
s赋 值 0
i赋 值 0
while i<5
输出s
将 boy[i].score累 加 到 s
boy[i].score <60
c累 加 1
i增 1
ave=s/5 输 出 ave和 c
图 4-12
例 4-20的 流 程 图
《C语言与数据结构》
先定义结构,再说明结构变量
例如: struct stu {
int num; char name[20]; char sex; float score; }; struct stu boy1,boy2; 说明了两个变量boy1和boy2为stu结构体类型。即图4-10 所表示的数据结构。
类型说明符 成员名; 结构体名和成员名的命名应符合标识符的书写规 定。
11/29/201911/29/2019 1:58 AM
相关例题
《C语言与数据结构》
例如:
结构体名
struct stu
{
int num;
成员
char name[20];
char sex;
float score;
}; 由此可见, 结构是一种复杂的数据类型,是数目固定,
11/29/201911/29/2019 1:58 AM
例4-21流程图
定 义 结 构 类 型 mem
《C语言与数据结构》
main
定 义 mem型 数 组 man
i赋 初 值 0
while def i < 数 组 长 度
i赋 初 值 0
while i<数 组 长 度
输入姓名和电话号码 i增 1
输出姓名和电话号码 i增 1
《C语言与数据结构》
根据学生成绩表,统计出全班的最高成绩、最低 成绩和每个人的平均成绩。
11/29/201911/29/2019 1:58 AM
结构体类型的定义
《C语言与数据结构》
定义一个结构体的一般形式为: struct 结构体名
{ 成员表列
}; 成员表由若干个成员组成, 每个成员都是该结构
的一个组成部分。对每个成员也必须作类型说明,其 形式为:
85
89
78
99
75
65
87







stu[0] stu[1] stu[2] stu[3] stu[4]
10 张 6
10 王 5
101 李平 M 45 2 苹M 1203 何方 F 92 104 陈玲 F 87 5 明M 8
11/29/201911/29/2019 1:58 AM
定义结构体数组
11/29/201911/29/2019 1:58 AM
下课
《C语言与数据结构》
11/29/201911/29/2019 1:58 AM
s[0] 赵
s[1] 85

s[2] 89

s[3] 78

s[4] 99

s[5] 75

s[6] 65

Math0 张0 王1 李2 赵3 周4
C1 80 61 59 85 76
Foxpro2
75
92
65
71
63
70
87
90
77
85
11/29/201911/29/2019 1:58 AM
一、引入问题
源程序
调用集成 编译环境
图 4-13
例 4-21的 流 程 图
11/29/201911/29/2019 1:58 AM
课堂教案
《C语言与数据结构》
教学内容
教学重点 教学难点 作业
结构体和结构体数组
掌握结构体类型的定义,结构体变量的定义、赋值 及引用,结构体数组的定义、初始化及赋值的方法。 1.结构体类型和结构体变量的定义、初始化、赋值 及使用 2.结构体数组的定义、初始化、赋值及使用 结构体类型和结构体变量的区别 Ch3的6、7、8
直接说明结构变量
《C语言与数据结构》
例如:
struct {
int num; char name[20]; char sex; float score; } boy1,boy2; 第三种方法与第二种方法的区别在于:第三种方 法中省去了结构体名,而直接给出结构体变量。
11/29/201911/29/2019 1:58 AM
情境二 二维连续数据管理系统 《C语言与数据结构》 任务一 第三单元 结构体和结构体数组
能用C语言设计和实现结构体 数组PDA描述算法的能力 能用C语言实现结构体数组 输入、访问、输出。
通过本次课的学习, 使学生掌握结构体 数组的定义、初始化、 赋值、引用,以及 数组元素成员的访问。
一、引入问题
《C语言与数据结构》
11/29/201911/29/2019 1:58 AM
结构体变量的赋值
《C语言与数据结构》
结构体变量的赋值就是给各成员赋值。可用输入语句或赋值语句来完成。 【例4-19】给结构变量赋值并输出其值。 源程序: #include “stdio.h”
#include “string.h” void main() {
AM
赋值用法总结
《C语言与数据结构》
1、普通变量可以直接赋值;
2、数组用for循环逐个赋值;
3、字符串用strcpy赋值;
4、结构体可以直接赋值;
11/29/201911/29/2019 1:58 AM
结构体数组
《C语言与数据结构》
如果数组的元素是结构体类型,则可以构成结构 体数组。
s[0] s[1] s[2] s[3] s[4] s[5] s[6]
11/29/201911/29/2019 1:58 AM
结构体数组的初始化
《C语言与数据结构》
与其他类型的数组一样,对结构数组可以初始化。例如:
struct stu {
int num; char name[20]; char sex; float score; }boy[5]={ {101,"Li ping",'M',45}, {102,"Zhang ping",'M',62.5}, {103,"He fang",'F',92.5}, {104,"Cheng ling",'F',87}, {105,"Wang ming",'M',58} } 当对全部元素作初始化赋值时,也可不给出数组长度。
11/29/201911/29/2019 1:58 AM
《C语言与数据结构》
定义结构体类型的同时说明结构体变量。
例如: struct stu {
int num; char name[20]; char sex; float score; } boy1,boy2;
11/29/201911/29/2019 1:58 AM
相关文档
最新文档