问答题
已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存人数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b中的4位数按从小到大的顺序进行排序,最后调用写函数wnteDat()把数组b中的数输出到OUT12.DAT文件中。
例如:6712,6+2=7+1,则该数满足条件,存人数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。
注意:部分源程序已给出。
程序中已定义数组:a[300],b[300],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数wfiteDat()的内容。
[试题程序]
#include<stdiO.h>
int a[300],b[300],cnt=0;
void readDat();
void writeDat();
void jsValue()
voidmain()
int i;
readDat();
jsValue();
writeDat();
printf("cnt=%d\n",cnt);
for(i=0;i<cnt;i++)
printf("b[%d]=%d\n",i,b[i]);
void readDat()
FILE*fp;
int i;
fp=fopen("IN12.DAT","r");
for(i=0;i<300;i++)
fscanf(fp,"%d,",&a[i]);
fclose(fp);
void writeDat()
FILE*fp;
int i;
fP=fopen("OUT12.DAT","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp,"%d,\n",b[i]);
fclose(fp);
【参考答案】
void jsValue()
{
int i,j; /*定义循环控制变量*/
int aA......
(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)