欢迎来到天天文库
浏览记录
ID:14733104
大小:53.00 KB
页数:21页
时间:2018-07-30
《第4类 数位分解并重组后再筛选统计并排序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4类数位分解并重组后再筛选统计并排序第4类数位分解并重组后再筛选统计并排序试题二十七已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的2位数ab(新十位数的2位数字是原4位数的千位数字,新2位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新2位数的个位数字是原4位数的百位数字),如果新组成两个2位数ab-cd>=0且ab-cd<=10且两个数均
2、是奇数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。【参考答案】voidjsVal(){ inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/in
3、ttemp;/*定义数据交换时的暂存变量*/intab,cd;/*存储重新组合成的十位数*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/ab=10*a4+a2;/*把千位数字和十位数字重新组成一个新的十位数ab*/cd=10*a1+a3;/*把个位数字和百位数字组成另一个新的十位数cd*/if((ab-cd)>=0&
4、&(ab-cd)<=10&&ab%2==1&&cd%2==1&&a4!=0&&a1!=0){/*如果ab-cd>=0且ab-cd<=10且两个数均是奇数同时两个新十位数的十位上的数字均不为零*/b[cnt]=a[i];/*则把满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数*/}}for(i=0;i5、200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的2位数(新2位数的十位数字是原4位数的千位数字,新2位数的个位数字是原4位数的个位数字),把百位数字和十位数字组成另一个新的2位数(新2位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个2位数均是奇数并且两个2位数中至少有一个数能被5整除,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要求计算满足上述条件的4位数的个数cnt,最6、后调用写函数writeDat(),把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。【参考答案】voidjsVal(){ inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/intab,cd;/*存储重新组合成的十位数*/for(i=0;i<200;i++)/7、*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/ab=10*a4+a1;/*把千位数字和个位数字重新组成一个新的十位数*/cd=10*a3+a2;/*把百位数字和十位数字组成另一个新的十位数*/if(ab%2==1&&cd%2==1&&(ab%5==08、9、cd%5==0)&&a4!=0&&a3!=0){/*如果这两个十位数均是奇数并且两个十位数中至少有一个数10、能被5整除,同时两个新十位数的十位上的数字均不为零*/b[cnt]=a[i];/*则把满足条件的数存入数组b中*/cnt+
5、200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的2位数(新2位数的十位数字是原4位数的千位数字,新2位数的个位数字是原4位数的个位数字),把百位数字和十位数字组成另一个新的2位数(新2位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个2位数均是奇数并且两个2位数中至少有一个数能被5整除,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要求计算满足上述条件的4位数的个数cnt,最
6、后调用写函数writeDat(),把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。【参考答案】voidjsVal(){ inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/intab,cd;/*存储重新组合成的十位数*/for(i=0;i<200;i++)/
7、*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/ab=10*a4+a1;/*把千位数字和个位数字重新组成一个新的十位数*/cd=10*a3+a2;/*把百位数字和十位数字组成另一个新的十位数*/if(ab%2==1&&cd%2==1&&(ab%5==0
8、
9、cd%5==0)&&a4!=0&&a3!=0){/*如果这两个十位数均是奇数并且两个十位数中至少有一个数
10、能被5整除,同时两个新十位数的十位上的数字均不为零*/b[cnt]=a[i];/*则把满足条件的数存入数组b中*/cnt+
此文档下载收益归作者所有