已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一

15 查阅

已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT13.DAT文件。

例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。

8129,8+1≠2+9,则该数不满足条件,忽略。

注意:部分源程序已给出。程序中已定义数组:a[300],b[300]已定义变量:cnt。请勿改动主函数main()、读函数 readDat()和写函数writeDat()的内容。

[试题程序]

include<stdio.h>

int a[300],b[300],cnt=0;

void jsValue()

{

}

main()

{

int i;

readDat();

jsValue();

writeDat();

for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);

}

readDat()

{

FILE *fp;

int i;

fp=fopen("IN13.DAT","r");

for(i=0;i≤300;i++)fscanf(fp,"%d,",&a[i]);

fclose(fp);

}

writeDat()

{

FILE *fp;

int i;

fp=fopen("OUT13.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i<cnt;i++)fprint{(fp,"%d\n",b[i]);

fclose(fp);

}

参考答案:

void jsValue() { int ithouhuntendataj; for(i=0;i300;i++) { thou=a[i]/1000; /*取得四位数的千位数字*/ hun=a[i]%1000/100; /*取得四位数的百位数字*/ ten=a[i]%100/10; /*取得四位数的十位数字*/ data=a[i]%10; /*取得四位数的个位数字*/ if(thou+hun==d

计算机三级