早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数Num

题目

已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数count并把这些四位数按从小到大的顺序存入数组b中。最后调用写函数Wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。

注意:部分源程序已经给出。程序中已定义数组a[200] b[200],已定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数Rdata()和写函数Wdata()的内容。

include <stdio.h>

define MAX 200

int a[MAX], b[MAX], count = 0;

void NumCal ()

{

}

void Rdata ()

{ int i;

FILE *fp;

fp = fopen("IN. dat", "r");

for (i=0; i<MAX; i++)

fscanf(fp, "%d,", &a[i]);

fclose (fp);

}

void Wdata ()

{ FILE *fp;

int i;

fp = fopen("OUT. dat", "w");

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

for (i=0; i<count; i++)

fprintf(fp, "%d\n", b[i]);

fclose (fp);

}

void main ()

{ int i;

Rdata ();

NumCal ();

printf("满足条件的数=%d\n", count);

for (i=0; i<count; i++)

printf("%d ", b[i]);

printf ("\n");

Wdata ();

}

参考答案
正确答案:void NumCal() { int i thou hun ten data j; for (i=0; iMAX; i++) { thou = a[i]/1000; hun = a[i]%1000/100; ten = a[i]%100/10; data = a[i]%10; if ((thou +data == hun +ten) && a[i]%2==1) { b[count] = a[i]; count++; } } for (i=0; icount-1; i++) for (j=i+1; jcount; j++) if (b[i] >b[j]) { data = b[i]; b[i] = b[j]; b[j] = data; } } [解题思路] 对于每一个四位数用这个四位数除以1000可得到这个四位数千位上的数字输给变量thou;这个四位数对1000求余数然后再除以100可得到这个四位数百位上的数字输给变量hun;这个四位数对100求余数然后再除以10可得到这个四位数十位上的数字输给变量ten;这个四位数对10求余数可得到这个四位数个位上的数字输给变量data。 然后判断表达式(thou+ data==hun+ ten) &&a[i]%2=1是否成立如果成立则把这个数赋给数组b同时计数变量count加1。最后对数组b中元素进行从小到大的排序。
void NumCal() { int i, thou, hun, ten, data, j; for (i=0; iMAX; i++) { thou = a[i]/1000; hun = a[i]%1000/100; ten = a[i]%100/10; data = a[i]%10; if ((thou +data == hun +ten) && a[i]%2==1) { b[count] = a[i]; count++; } } for (i=0; icount-1; i++) for (j=i+1; jcount; j++) if (b[i] >b[j]) { data = b[i]; b[i] = b[j]; b[j] = data; } } [解题思路] 对于每一个四位数,用这个四位数除以1000,可得到这个四位数千位上的数字输给变量thou;这个四位数对1000求余数然后再除以100,可得到这个四位数百位上的数字输给变量hun;这个四位数对100求余数然后再除以10,可得到这个四位数十位上的数字输给变量ten;这个四位数对10求余数,可得到这个四位数个位上的数字输给变量data。 然后判断表达式(thou+ data==hun+ ten) &&a[i]%2=1是否成立,如果成立,则把这个数赋给数组b,同时计数变量count加1。最后对数组b中元素进行从小到大的排序。
看了已知数据文件IN.dat中存有...的网友还看了以下:

函数y=1/x在(-∞,0)上是减函数,在(0,+∞)上也是减函数,但它在整个定义域即(-∞,0) 数学 2020-05-13 …

高手帮帮忙阿!用函数计算三角形的面积!!!编写一个函数,用于接收三角形的底和高,并计算该三角形的面 其他 2020-05-15 …

函数这个概念最早是由17世纪的德国数学家莱布尼茨提出的.后经300多年的锤炼变革,形成了函数的现代 英语 2020-06-03 …

英语翻译翻译汉译英:函数这个概念最早是由17世纪的德国数学家莱布尼茨提出的.后经300多年的锤炼变 英语 2020-06-03 …

新定义:若两个二次函数图象的顶点、开口方向都相同,则称这两个二次函数为“同簇二次函数”.(1)请判 数学 2020-07-01 …

已知函数f(x)=ex-e-x-2x,x∈R(1)证明f(x)为奇函数,并在R上为增函数;(2)若 其他 2020-07-26 …

请问,对于一个复合函数,它有最大值是m,而内层函数有最小值n①那么请问这个复合函数的外层函数是不是 数学 2020-08-02 …

常数和基本初等函数经过有限次的四则运算和有限次的函数复合步骤所构成并可用一个式子表示的函数,称为初 数学 2020-08-02 …

隐函数是函数吗?如果是,那么从函数的定义来说x^2+y^2=1并不是函数,可它是隐函数,这个怎么理解 数学 2020-12-09 …

python问题有一个函数Mylog(x,b),假如x是16,b是2,该函数要返还的值就是4,因为2 其他 2020-12-26 …