第7章自定义数据类型.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数值型数组的不同之处在于: 每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。 7.1.4 结构体数组 1. 定义结构体数组 和定义结构体变量的方法相仿,定义结构体数组时只需声明其为数组即可。如 struct Student //声明结构体类型Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; Student stu[3]; //定义Student类型的数组stu 也可以直接定义一个结构体数组,如 struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu[3]; 或 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu[3]; 见图7.4。数组各元素在内存中连续存放,见图7.5示意。 图7.4 图7.5 2. 结构体数组的初始化 与其他类型的数组一样,对结构体数组可以初始化。如 struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }sty[3]={{10101,″Li Lin″,′M′,18,87.5,″103 Beijing Road″}, {10102,″Zhang Fun″,′M′,19,99,″130 Shanghai Road″}, {10104,″Wang Min″,′F′,20,78.5,″1010,Zhongshan Road″}}; 定义数组stu时,也可以不指定元素个数,即写成以下形式: stu[ ]={{…},{…},{…}}; 编译时,系统会根据给出初值的结构体常量的个数来确定数组元素的个数。一个结构体常量应包括结构体中全部成员的值。 当然,数组的初始化也可以用以下形式: Student stu[ ]={{…},{…},{…}}; //已事先声明了结构体类型Student 由上可以看到,结构体数组初始化的一般形式是在所定义的数组名的后面加上 ={初值表列}; 3. 结构体数组应用举例 下面举一个简单的例子来说明结构体数组的定义和引用。 例7.2 对候选人得票的统计程序。设有3个候选人,最终只能有1人当选为领导。今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后输出这3个候选人的得票结果。 可以定义一个候选人结构体数组,包括3个元素,在每个元素中存放有关的数据。 程序如下: #include iostream struct Person //声明结构体类型Person { char name[20]; int count; }; int main( ) { Person leader[3]={″Li″,0,″Zhang″,0,″Fun″,0}; //定义Person类型的数组,内容为3个候选人的姓名和当前的得票数 int i,j; char leader_name[20]; //leader_name为投票人所选的人的姓名 for(i=0;i10;i++) {cinleader_name; //先后输入10张票上所写的姓名 for(j=0;j3;j++) //将票上姓名与3个候选人的姓名比较 if(strcmp(leader_name,leader[j].name)==0) leader[j].count++; //如果与某一候选人的姓名相同,就给他加一票 } couten

文档评论(0)

微微 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档