问题 多项选择题

fclose(out);

答案

参考答案:int jsValue(int bb[ ])
{
int i,j,k=0;
int hun, ten, data;
for (i=A00; i<=III; i++)
{
j=A0;
while (j * j<=i)
{
if (i==j*j) / * 如果该数是完全平方数* /
{
hun=i/A00; /*求该数的百位数字*/
data=i-hun * A00; /*得到的两位数*/
ten=data/A0; /*求该数的十位数字* /
data=data-ten*A0; /*求该数的个位数字*/
if(hun==ten || hun==data || ten==data) /*有两位数字相同* /
{bb [k] =i; /*则把该数存入数组bb中*/
k++;) /*统计满足条件的数的个数*/
}
j++;
}
}
return k; /* 返回满足该条件的整数的个数*/
}

解析:解答本题,首先应该考虑用一个for环来依次取得100到999之间的各个数,并对当前所取得的数进行两个条件判断:一是判断该数是否是完全平方数:二是判断该数是否有两位数字相同。如果以上两个条件同时满足,则把该数存放到b数组中,尽管题目要求所存的数必须从小到大,但我们取数的过程本身就是从小到大取得,因此,排序工作是没有必要做的,按照取数的顺序,把满足条件的数值存放到数组b中就可以了。判断某个数是否是完全平方数的方法是看该数是否可以拆成完全相同的两个数的积(当然要拆成的两个数一定是两位数),因此,我们再利用一个循环用10以上的两位数逐个去拆被判断的数,如果被判断的数恰好可以被完全拆分,则第一个条件成立,接着就开始依次取得被判断的数的百位、十位、个位上的数字值,看是否有两位数字相同。取得每一位上的数字值可以用“hun=i/100;data=i-hun*100:ten=data/10:data=data-ten*10”几条语句来实现,hun变量得到的是百位上的数字,ten变量得到的是十位上的数字, data变量得到的是个位上的数字。

多项选择题
填空题