- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言10复杂数据结构解读
第十一章 复杂数据类型 结构体、线性链表、共用体与枚举 11.1 结构体 11.2.1 结构体类型的定义 11.2.2 结构体变量的定义和引用 结构体变量的引用 11.2.3 结构体变量的赋值1 结构体变量的初始化 2 结构体变量的赋值 【例11-2】输出结构体数据 程序分析: 本程序中用赋值语句给num和name两个成员 赋值,name是一个字符串指针变量。用scanf函 数动态地输入sex和score成员值,然后把boy1的 所有成员的值整体赋予boy2。最后分别输出boy2 的各个成员值。本例表示了结构变量的赋值、输入 和输出的方法。 11.2.4 结构体数组 9.1.5 结构体数组 9.1.5 结构体数组 【例11-3】计算学生的平均成绩和不及格的人数。 程序分析: 【例11-4】建立同学通讯录 。 程序分析: 11.3 线性链表 动态存储分配函数 11.3.2 链表的概念 (2) 链表的概念 (2) 链表的概念 程序分析: 11.3.3.动态存储分配链表的基本操作 3.动态存储分配链表的基本操作 【例11-6】建立带有头结点的单向链表,当输入-1时结束。 (2) 输出链表 (3)删除单向链表中的一个结点 【例】编写函数,在单向链表中删除值为x的结点 (4)在单向链表的某结点前插入一个结点 【例】 11.4 共用体 11.4.2 共用体变量的定义和引用 3.不定义类型名直接定义共用体变量 共用体变量的引用 程序分析: 11.5 枚举类型 说 明 11.5.2 枚举变量的说明及引用 2.枚举变量的引用 2.枚举变量的引用 【例11-8】输出全部的枚举值字符串 程序分析: 枚举类型的应用 程序分析: 11.6 用户定义类型 举 例 举 例 3.定义新类型名的一般步骤及说明 11.7 复杂数据类型应用综合举例 【例11-10】 【例11-10】 程序分析: 【例11-11】 【例11-11】 【例11-11】 程序分析: 【例11-12】 【例11-12】 程序分析: 【例11-13】口袋中有红、黄、绿、蓝颜色的球各一些,现从口袋中每次摸出3个球,要求颜色均不同,考虑摸出的顺序,输出所有可能的取法的排列及取法的数量。 【例11-13】 程序分析: 11.8 本章小结及常见错误列举 本章小结 本章小结 本章小结 本章小结 【例11-10】有5个学生,每个学生的信息有学号、姓名和三门课的成绩,求每个学生的平均成绩并按平均成绩从大到小对所有学生的信息进行排序然后输出。 分析:在定义结构体类型时可以设计一个存放平均成绩的成员,排序交换位置时应将结构体数组元素整体交换,编程如下: main(){ struct student { long num; char name[10]; int score[3]; float evr; }t,st[5]={{1001,wang,67,75,88},{1002,li,83,92,95}, {1003,zhao,56,82,79}, {1004,han,78,87,79}, {1005,qian,69,79,81}};int i,j;for(i=0;i5;i++) {st[i].evr=0; for(j=0;j3;j++) st[i].evr+=st[i].score[j]; st[i].evr/=3; } for(i=0;i4;i++) for(j=i+1;j5;j++) if(st[i].evrst[j].evr){t=st[i];st[i]=st[j];st[j]=t;} printf(No. Name scor1 scor2 score3 evr\n); for(i=0;i5;i++) { printf(%ld%8s,st[i].num,st[i].name); for(j=0;j3;j++)printf(%8d,st[i].score[j]); printf(%8.1f\n,st[i].evr); }} 在定义结构体类型时可以设计一个存放平均成绩的成员,排序交换位置时应将结构体数组元素整体交换。 有5个学生,每个学生的信息有学号、姓名和三门课的成绩,输出三门课的总平均分以及所有成绩中最高成绩所对应学生的全部信息。 【分析】三门课的总平均分可以定义一个数组,找出最高成绩时应记录是哪个学生才能输出该学生的全部信息,编程如下: main(){ struct student { long num; char name[10]; int
文档评论(0)