C语言程序设计5-8章.ppt

  1. 1、本文档共190页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解题步骤 1.根据题意,定义结构体struct date 描述出生年月 2.定义结构体描述struct student描述学生信息,其中出生年月为struct date类型 3.定义两个struct student变量stOrg和stBak,其中stOrg初始化赋值 4.将stOrg复制到stBak 5.输出stBak的各成员值,与stOrg的各初始化数据对比 程序代码 #include stdio.h struct date{ int iYear,iMonth,iDay; }; /*定义日期结构体*/ struct student{ char chName[8]; int iEng,iMath,iProg; struct date stBirth;}; /*定义学生信息结构体*/ void main() { struct student stOrg={Tom,80,90,85,1986,11,30},stBak; stBak=stOrg; printf(%s,%d,%d,%d,%d,%d,%d,stBak.chName,stBak.iEng,stBak.iMath, stBak.iProg,stBak.stBirth.iYear,stBak.stBirth.iMonth,stBak.stBirth.iDay); getch(); } 小结:结构体类型和结构体变量 结构体可以表达类似于数据库中“记录”的数据,使用结构体来表达数据,必须先定义结构体类型,再用此类型定义结构体变量。结构体中的每个数据叫做成员,在进行输入输出等操作时要用成员引用符号“.”引用到具体成员。 定义一个结构体变量,系统分配的内存空间是该结构体变量中所有成员占据内存空间的总和。 8.2 结构体数组的应用 :学一学 1.结构体数组的定义与结构体变量类似,只需说明其为数组即可。 struct 结构体类型名 { 数据类型 成员1; 数据类型 成员2; …… 数据类型 成员n; }; struct 结构体类型名 数组名[数组长度]; 2.结构体数组元素也是通过数组名和下标来引用的,但其元素是结构体类型的数据,因此,对结构体数组元素的引用与对结构体变量的引用一样,也是逐级引用,只能对最低级的成员进行存取和运算。 一般的引用形式为: 数组名[下标].成员名 问题8.4:试一试 一个学习小组有N名学生,学生的信息包含学号、姓名、语文、数学、英语三门课的成绩,从键盘上输入N名学生的信息,要求统计总成绩并显示总分最高的学生信息。 解题步骤 1. 以学生的信息数据项为成员,定义结构体类型和相应的结构体数组 2. 循环输入每个学生的信息,统计总成绩,存储在结构体数组中 3. 循环比较求出总分最高的学生,并显示 程序代码: #include stdio.h #define N 3 /*学生人数*/ struct student{ char iId[15]; char chName[15]; int iChinese,iMath,iEnglish; int iTotal; }; 程序代码(续前): void main() {int i,iMax=0; /*定义结构体数组并且初始化*/ struct student stStu[N]={{06003,Tom,80,85,80}, {06005,Alice,90,80,95},{06002,Ellen,80,78,59}}; for (i=0;iN;i++) /*循环计算每个学生的总分*/ { stStu[i].iTotal = stStu[i].iChinese+stStu[i].iMath+stStu[i].iEnglish; } for(i=0;iN;i++) /*求出总分最高的学生的下标*/ if(stStu[i].iTotal stStu[iMax].iTotal) iMax=i; printf(\nThe best students information:\n); printf(%s,%s,%d,%d,%d,%d,stStu[iMax].iId,stStu[iMax].chName, stStu[iMax].iChinese,stStu[iMax].iMath,stStu[iMax].

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档