32结构体数组和指针.10.19PPT课件
《32结构体数组和指针.10.19PPT课件》由会员分享,可在线阅读,更多相关《32结构体数组和指针.10.19PPT课件(16页珍藏版)》请在装配图网上搜索。
1、2021/6/71结构体结构体2结构体数组与指针2021/6/72【例】简单学生成绩管理(一个班【例】简单学生成绩管理(一个班3030个学生个学生)#include struct Testlong number;/学生学号学生学号int classnum;/学生班号学生班号char name20;/学生姓名学生姓名 int score2;/分别存放平时成绩和期末考试成绩分别存放平时成绩和期末考试成绩 float finalscore;/最终的总评成绩最终的总评成绩;学号学号班号班号姓名姓名平时成绩平时成绩期末考试成绩期末考试成绩总评成绩总评成绩如何处理一个班30个学生的成绩?2021/6/73
2、main()struct Test Student;struct Test long number;int classnum;char name20;int score2;float finalscore;printf(请输入学生学号请输入学生学号:);scanf(%ld,&Student1.number);printf(请输入学生班号请输入学生班号:);scanf(%d,&Student1.classnum);printf(请输入学生姓名请输入学生姓名:);scanf(%s,Student1.name);printf(请输入学生平时成绩请输入学生平时成绩:);scanf(%d,&Studen
3、t1.score0);printf(请输入学生期末考试成绩请输入学生期末考试成绩:);scanf(%d,&Student1.score1);Student1.finalscore=Student1.score0*0.2+Student1.score1*0.8;printf(学号:学号:%ldt,Student1.number);printf(班级号:班级号:%dt,Student1.classnum);printf(姓名:姓名:%sn,Student1.name);printf(平时成绩:平时成绩:%dt,Student1.score0);printf(期末考试成绩:期末考试成绩:%dt,St
4、udent1.score1);printf(最终成绩:最终成绩:%fn,Student1.finalscore);for(int i=0;i30;i+)Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.Studenti.for(i=0;i30;i+)Student302021/6/74结构体结构体数组数组的定义和初始化的定义和初始化2021/6/75结构体结构体数组数组的定义和初始化的定义和初始化建立了数据库中的
5、多条记录,每条对应一个学生信息建立了数据库中的多条记录,每条对应一个学生信息2021/6/76 【例】利用结构体数组计算每个学生的平均分2021/6/77结构体结构体指针指针的定义和初始化的定义和初始化ptstu1 STUDENT stu1;STUDENT *pt;pt=&stu1;成员成员1成员成员2成员成员3成员成员4成成员员5等价于等价于u 指向结构体变量的指针只能指向同一种结构体类型的变量和数组元素u 不能指向结构体变量的成员。2021/6/78结构体结构体指针指针的定义和初始化的定义和初始化ptstu1成员成员1成员成员2成员成员3成员成员4成成员员52021/6/79结构体结构体指
6、针指针的定义和初始化的定义和初始化ptstu1成员成员1成员成员2成员成员3成员成员4成成员员52021/6/710结构体结构体指针指针的定义和初始化的定义和初始化 STUDENT stu30;STUDENT *pt;pt=stu;等价于等价于或或ptstu30stu0stu1stu2stu3stu4stu5.stu292021/6/711ptstu30stu0stu1stu2stu3stu4stu5.stu292021/6/712【例】输入【例】输入5 5个学生的数学成绩并排名个学生的数学成绩并排名#include struct Test char name10;int score;main
7、()struct Test Math5,t;/定义结构体定义结构体t用于交换算法用于交换算法 int i,j;/下面的循环用于向结构体数组元素输入数据下面的循环用于向结构体数组元素输入数据 for(i=0;i5;i+)printf(请输入第请输入第%d个学生的姓名个学生的姓名:,i+1);scanf(%s,Mathi.name);printf(请输入第请输入第%d个学生的成绩个学生的成绩:,i+1);scanf(%d,&Mathi.score);2021/6/713【例】输入【例】输入5 5个学生的数学成绩并排名(续)个学生的数学成绩并排名(续)/下面的循环对结构体数组元素按其下面的循环对结构
8、体数组元素按其score 成员的值由大到小进行排序成员的值由大到小进行排序 for(i=0;i4;i+)for(j=i+1;j5;j+)if(Mathi.score Mathj.score)t=Mathi,Mathi=Mathj,Mathj=t;/下面的循环用于输出排序后的结果下面的循环用于输出排序后的结果 for(i=0;i5;i+)printf(第第%d名名 ,i+1);printf(姓名:姓名:%st成绩:成绩:%dn,Mathi.name,Mathi.score);如何用指针实现?2021/6/714for(i=0;i5;i+)printf(请输入第请输入第%d个学生的姓名个学生的姓名
9、:,i+1);scanf(%s,Mathi.name);printf(请输入第请输入第%d个学生的成绩个学生的成绩:,i+1);scanf(%d,&Mathi.score);printf(姓名:姓名:%st成绩:成绩:%dn,Mathi.name,Mathi.score);【例例】用用指针指针实现输入实现输入5 5个学生的数学成绩并排个学生的数学成绩并排名名struct Test*p=Math;for(i=0;iname);printf(请输入第请输入第%d个学生的成绩个学生的成绩:,i+1);scanf(%d,&(p+i)-score);printf(姓名:姓名:%st成绩:成绩:%dn,(
10、p+i)-name,(p+i)-score);2021/6/715【例】用指针实现输入【例】用指针实现输入5 5个学生的数学成绩并个学生的数学成绩并排名排名for(i=0;i5;i+)printf(请输入第请输入第%d个学生的姓名个学生的姓名:,i+1);scanf(%s,Mathi.name);printf(请输入第请输入第%d个学生的成绩个学生的成绩:,i+1);scanf(%d,&Mathi.score);printf(姓名:姓名:%st成绩:成绩:%dn,Mathi.name,Mathi.score);struct Test*p=Math;for(i=0;iname);printf(请输入第请输入第%d个学生的成绩个学生的成绩:,i+1);scanf(%d,&p-score);printf(姓名:姓名:%st成绩:成绩:%dn,p-name,p-score);或者:或者:部分资料从网络收集整理而来,供大家参考,感谢您的关注!
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。