给定程序中, 函数 fun 功能是: 找出 100~999 之间(含 100 和 999) 所有整数中各位上数字之和为 x(x 为一正整数) 的整数, 然后输出; 符合条件的整数个数作为函数值返回。
例如, 当 x 值为 5 时, 100~999 之间各位上数字之和为 5 的整数有: 104、 113、 122、 131、 140、 203、 212、221、 230、 302、 311、 320、 401、 410、 500。 共有 15 个。 当 x 值为 27 时, 各位数字之和为 27 的整数是: 999。只有 1 个。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意: 源程序存放在考生文件夹下的 BLANK1.C 中。
不得增行或删行, 也不得更改程序的结构!
/**********code.c**********/
#include
int fun(int x)
{
int n, s1, s2, s3, t;
n=0;
t=100;
/**********found**********/
while(t<=①______)
{
/**********found**********/
s1=t%10; s2=(②______)%10;
s3=t/100;
/**********found**********/
if(s1+s2+s3==③______)
{
printf("%d ",t);
n++;
}
t++;
}
return n;
}
void main()
{
int x=-1;
while(x<0)
{
printf("Please input(x>0): ");
scanf("%d",&x);
}
printf("\nThe result is: %d\n",fun(x));
}
/**********-code.c**********/
①999
②t/10
③x
填空 1: 题目要求找出 100~999 之间符合要求的数, 所以 while 语句的循环条件是 t<=999。
填空 2: 变量 s2 存放三位数的十位, 取出三位数十位数值的方法为 s2=(t/10)%10。
填空 3: 题目需要判断各位上数字之和是否为 x, 所以 if 语句条件表达式是 s1+s2+s3==x。