已知在文件in.dat中存有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这200组数据
已知在文件in.dat中存有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这200组数据存放到结构数组aa中。请编制函数jsSort,其函数的功能是:要求在200组数据中找出第二个数大于第一个数加第三个数之和的数,其中满足条件的个数作为函数jsSort的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组 bb中,最后调用函数writeDat把结果bb输出到out.dat文件中。 注意:部分源程序存在test.C文件中。 请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。
【审题关键句】第2个数大于第1个数加第3个数,存入数组,按第2个加第3个数之和降序排序。
【解题思路】
①首先定义两个循环变量i、j;一个计数变量count;一个用于中间转换数据的结构体变量CC。
②建立一个for循环,指定第一个for循环的循环变量i从0开始,到200时结束,每循环一次,变量i的值加1。在循环体中依次判断每行数据中,如果aa[i]的第二个数大于第一个数加第三个数之和,则把aa[i]复制到bb[count]中,同时数组下标变量count加1。
③将所有满足条件的记录筛选保存到数组bb口后,再通过两个for循环对数组bb[]中记录进行排序。第一个for循环的循环变量i的初值为0,当等于数组计数变量count的值减1时停止循环,每循环一次,i的值加1;第二个for循环的循环变量j的初值等于i+1,当等于数组计数变量count的值时停止循环,每循环一次,j的值加1;每次进行比较时,如果第i行的第二个数加第三个之和小于其后面第i行的第二个数加第三个之和,将执行if条件语句后面花括号中的命令,花括号中3条命令的功能就是根据题目要求按每行数据中第二个数加第三个之和从大到小排序。
④最后将计数函数count返回。
【参考答案】
超简单数字迷用三个0,三个5组成一个六位数读两个0的有(),读一个0的有(),不读0的有() 数学 2020-03-30 …
1.三角形中第一个角是第二个角的二分之三倍,比这两个角和大20度,求这三个角读数2.直角三角形两个 数学 2020-05-13 …
四个8,四个4,可组成不读零的、读一个零的、读两个零的、读三个零的八位数各多少个?题打错了四个8, 数学 2020-05-16 …
用“三个0”、和“三个4”按要求组数(1)、只读1个0的(),(2)、只读两个0的()3(3)、一 数学 2020-05-23 …
用0、0、0、1、2、3、4这七个数按要求组七位数读1个0,读2个0,读3个0,不读0 数学 2020-06-04 …
用0、0、2、4、6和小数点组成一个最小的纯小数是,组成一个只读1个“零”的最大三位小数是.组成一 其他 2020-06-11 …
用5,0,8,1,0,这五个数字完成下面各题.(各小题中每个数字只用一次)(1)只读一个0的最大三 其他 2020-06-11 …
300009000读作三亿零九千,3000090000000读作三万亿九千万,第一个数读0,为什么 其他 2020-06-15 …
三相电机的功率算法我有一台CNC机床,用电流表实测三相线电流读数为A相高峰1.6A,平时1.0AB 物理 2020-06-28 …
参去掉那三撇下面写个三读什么 语文 2020-07-11 …