结构体和泛型程序设计讲述_第1页
结构体和泛型程序设计讲述_第2页
结构体和泛型程序设计讲述_第3页
结构体和泛型程序设计讲述_第4页
结构体和泛型程序设计讲述_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、结构体和泛型编程1068谈起1068题目 要找出排名前5的人。 这5个人的排名要求是先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。 这里的排序就比较别扭了。两个问题 学生一共有三个数据项,我们如何来存储三个数据项? 怎么排序?怎么用 #include 中的sort。第一个问题:struct在c+中,允许自己定义类型。(和pascal中的record效果一样)在本题中我们就可以自己定义一个student类型。struct studentint yuwen;int id;int

2、 score;这里我定义了一个类型 student,他包含三个数据项,分别是整型的语文成绩,整型的学号,整型的总分。具体语法规则声明一个结构体类型的一般形式为:struct 结构体类型名成员表列;定义struct可以放在 main的上方,也可放在main里。 具体用法可以参看谭浩强的教材。 我们在pasacl中没有一些标准算法可以调用,所以,我们经常不用record,而用很多一维数组代替。比如本道题,我们就可以用三个一维数组。但是c+里有很多标准算法,所以,我们更要习惯 定义结构体来做题目。排序数组的排序#include #include /算法库using namespace std;boo

3、l mycmp( int a, int b) /返回true表示排序时a应该放在b前面return ab;int main() int a10=1,4,2,3,6,7,5,9,0,8; int N=10; sort(a, a+N); /从起点到终点从小到大排序 for (int i=0; iN; i+) cout ai ; /结果是10个数字从小到大排列 cout endl; sort(a, a+N, mycmp); /调用自己定义的比较函数,第三个参数。 /见上面的mycmp函数 for (int i=0; iN; i+) cout ai ; /结果是10个数字从大到小排列 cout endl; return 0;第二个问题,排序 这道题的排序需要比较三个数据项,并且有降序有升序。 我们需要自己定义比较方式。 C+的排序内置在 库中。 如果你自己编的过程必须要制定类型。 Sort这个函数是不分类型的。这就是常说的泛型程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论