下列给定程序中,函数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个。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!

源程序如下:


#include <stdio.h>
int fun(int x)
{ int n, s1, s2, s3, t;
n=0;
t=100;
/**********found**********/
while(t<=__1__){
/**********found**********/
s1=t%10; s2=(__2__)%10; s3=t/100;
/**********found**********/
if(s1+s2+s3==__3__)
{ printf("%d ",t);
n++;
}
t++;
}
return n;
}
int main()
{ int x=-1;
while(x<0)
{ printf("Please input(x>0): ");
scanf("%d",&x); }
printf("\nThe result is: %d\n",fun(x));
return 0;
}


做完再看答案~~

.........................................................................................................................................





【答案】

(1)999     (2)t/10     (3) x

【分析】

本题考查:whie循环语句;数值n各个位的表示方法;if语句条件表达式。

填空1:题目要求找出100-9间符合要求的数,所以

whie语句的循环条件是t<=999

填空2:变量s2存放三位数的十位,取出三位数十位数值的方法为s2=(t/10 )%10。

墳空3:题目需要判断各位上数字之和是否为x,所以语句条件表达式是s1+s2+s3==x


【程序运行】

填空题:whie_循环语句



【运行过程】


填空题:whie_程序运行_02