第九章 结构体 概述 在实际应用中,有不少应用问题如果只采....ppt 立即下载
2024-12-08
约5.3千字
约39页
0
176KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

第九章 结构体 概述 在实际应用中,有不少应用问题如果只采....ppt

第九章结构体概述在实际应用中,有不少应用问题如果只采....ppt

预览

免费试读已结束,剩余 34 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第九章结构体
概述
在实际应用中,有不少应用问题如果只采用已学的变量和数组作为数据结构显得很不方便。
例:输入100个学生的学号、姓名和考试成绩,编写程序找出高分者和低分者。
用变量和数组作数据结构可编写程序如下:
main()
{inti,
intnum,maxnum,minnum;
charname[20],maxname[20],minname[20];
intscore,maxscore,minscore;
maxscore=0;minscore=100;
for(i=1;i<=100;i++)
{scanf(%d%s%d”,&num,name,&score);
if(score>maxscore)
{maxscore=score;maxnum=num;strcpy(maxname,name);}
if(score<minscore)
{minscore=score;minnum=num;strcpy(minname,name);}
}
输出
}
明显缺点:
①变量过多,同一学生的各个数据无联系,没有整体概念,不便管理。
②操作不便(如更新过程)。
显然,选用一种能把一个学生的数据构造成一个整体的构造型数据结构更合适,但不能是数组。
对于这种情况,可以将一个学生的数据定义为一个结构体类型:	structstudent类型名
{
intnum;成员表
charname[20];
intscore;
};

定义了一个结构体类型,它包含三个成员。
9.2定义结构体类型变量的方法
前面定义的结构体类型只是一种“模型”,还必须定义结构体变量后才能存放数据。
定义结构体变量有三种方法:
1、先定义结构体类型再定义结构体变量
structstudent{
intnum;charname[20];intscore;
};
定义了结构体类型后:
structstudentst,stmax,stmin;
类型符变量名
定义了三个结构体变量,每个变量包含三个成员,每个变量可存放一个学生的数据。
2、在定义结构体类型的同时定义结构体变量
structstudent
{
intnum;
charname[20];
intscore;
}st,stmax,stmin;

		说明:
①类型与变量不同,只对变量分配空间与操作。
②对成员可以单独使用,相当于普通变量。
③成员也可以是一个结构体变量。
structdatestructstudent
{intmonth;{intnum;
intday;charname[20];
intyear;structdatebirthday;
};}st1,st2;9.3结构体变量的引用■成员引用
可以对成员单独引用,形式为:
结构体变量名.成员名

成员运算符

st.num=1001;st.score=90;strcpy(st.name,”Li”);
printf(“%d%s%d”,st.num,st.name,st.score);
scanf(“%d%s%d”,&st.num,st.name,&st.score);
可以引用成员的地址如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员,只能对最低级的成员进行存取与运算。

st1.birthday.year=1960;
st1.birthday.month=5;
st1.birthday.day=15;

■整体引用
可以对结构体变量进行整体赋值:
stmax=st;将st中的所有内容赋值给stmax。

对结构体变量的整体操作只限于赋值操作和参数传递,而且要求类型一致。不能对结构体变量进行整体输入输出。
结构体应用举例:
编写程序输入100个学生的学号、姓名和考试成绩,找出高分者和低分者。

structstudent
{intnum;
charname[20];
intscore;
};main()
{inti;structstudentst,stmax,stmin;
stmax.score=0;stmin.score=100;
for(i=1;i<=100;i++)
{scanf(“%d%s%d”,&st.num,st.name,&st.score);
if(st.score>stmax.score)stmax=st;
if(st.score<stmin.score)stmin=st;
}
printf(“\n%5d%15s%5d”,stmax.num,stmax.name,
stmax.score);
printf(“\n%5d%15s%5d”,stmin.num,stmin.name,
stmin.score);
}9.4结构体变量的初始化
对结构体变量可以在定义时指定初始值structstudent
{
int
查看更多
my****25
实名认证
内容提供者
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

第九章 结构体 概述 在实际应用中,有不少应用问题如果只采...

文档大小:176KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用