如果您无法下载资料,请参考说明:
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
实名认证
内容提供者
最近下载
最新上传
高平市第一中学2023年高三综合题(三)物理试题.doc
鄂尔多斯市第一中学2022-2023学年高三3月份两校联考物理试题.doc
迪庆市重点中学2023届高考物理试题命题比赛模拟试卷(31).doc
赣州市红旗实验中学2023届高三下学期第一次模拟-物理试题试卷.doc
福建莆田秀屿下屿中学2023年高三高考考前指导卷(2)物理试题.doc
福建省龙海市第二中学2023年高三下学期第一次适应性考试物理试题.doc
福建省龙岩高中2023届高三第三次教学质量监测物理试题试卷.doc
福建省龙岩市龙岩第一中学2023届高三3月新起点考试物理试题.doc
福建省龙岩市龙岩一中2022-2023学年5月高三联考物理试题试卷.doc
福建省龙岩市长汀县新桥中学2023年下学期高三联考物理试题.doc