第5类 根据相邻数大小进行筛选统计并排序.docVIP

  • 3
  • 0
  • 约3.81千字
  • 约 6页
  • 2017-12-27 发布于河南
  • 举报

第5类 根据相邻数大小进行筛选统计并排序.doc

第5类 根据相邻数大小进行筛选统计并排序

第5类 根据相邻数大小进行筛选统计并排序 第5类 根据相邻数大小进行筛选统计并排序 试题三十六 已知文件IN.DAT中存有200个4位数,并已调用读函数readDat() 把这些数存入数组a中。请编制函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数(该4位数以后不满5个数,则不统计),则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。 注意:部分源程序存放在PROG1.C中。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容【参考答案】 void jsVal() { int i,j; /*定义循环控制变量*/ int temp; /*定义数据交换是的暂存变量*/ for(i=0;iMAX-5;i++) /*逐个取每个4位数*/ if(a[i]a[i+1]a[i]a[i+2]a[i]a[i+3]a[i]a[i+4]a[i]a[i+5]a[i]%2==0) /*如果当前数是偶数且小于后面连续5个数*/ { b[cnt]=a[i]; /*将满足条件的数存入数组b中*/ cnt++; /*并统计满足条件的数的个数*/ } for(i=0;icnt-1;i++) /*利用选择法对b数组中的元素进行从小到大的排序*/ for(j=i+1;jcnt;j++) if(b[i]b[j]) { temp=b[i]; b[i]=b[j]; b[j]=temp; } } 试题三十七 已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数(该4位数以前不满5个数,则不统计),则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT.DAT中。 注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main( )、读函数readDat()和写函数writeDat( )的内容。【参考答案】 void jsVal() {  int i,j; /*定义循环控制变量*/ int temp; /*定义数据交换是的暂存变量*/ for(i=5;iMAX;i++) /*逐个取每个4位数*/ if(a[i]%2==0) /*如果当前数是偶数*/ for(j=i-5;j=i-1;j++) /*取该数前面的5个数进行比较*/ { if(a[i]a[j]) break; /*如果当前数不满足比前面5个数都大的条件,则跳出循环*/ else if(j==i-1) /*如果当前数比前面的5个数都大*/ { b[cnt]=a[i]; /*将满足条件的数存入数组b中*/ cnt++; /*并统计满足条件的数的个数*/ } } for(i=0;icnt-1;i++) /*利用选择法对b数组中的元素进行从大到小的排序*/ for(j=i+1;jcnt;j++) if(b[i]b[j]) { temp=b[i]; b[i]=b[j]; b[j]=temp; } } 试题三十八 已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsVal(),其功能是:依次从数组a中取出

文档评论(0)

1亿VIP精品文档

相关文档