问答题

已知数据文件IN69.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把一个4位数的千位数上的值减百位数上的值再减十位数上的值最后减个位数上的值,如果得出的值大于等于零且此4位数是奇数,则统计出满足此条件的数的个数cnt并把这些4位数存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用函数writeDat()把结果cnt及数组b中的符合条件的4位数输出到out69.dat文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200],b[200],己定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
# inc lude<stdio, h>
#define MAX 200
int a [MAX], b [MAX], cnt=0; void jsVal()

void readDat ( )

int i;
FILE *fp;
fp= fopen ( "IN69. DAT", "r" );
for (i=0; i<MAX; i++)
fscanf (fp, "%d" ,&a [i] );
fclose (fp);

void main ( )

int i;
readDat ( );
jsVal ( );
printf ("满足条件的数=%d\n", cnt );
for (i=0; i<cnt; i++)
printf("%d",b[i]);
printf ( "\n" );
writeDat ();

writeDat ( )

FILE *fp;
int i;
fp=fopen ( "out69. dat", "w" );
fprintf (fp, "%din", cnt);
for (i=0; i<cnt; i++)
fprint f ( fp, "%din", b [i] );
fclose(fp);

【参考答案】

void CalValue( )
{
int i;
double x,sum=0;

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)