问题 问答题

下列程序的功能是:在三位整数(100~999)中寻找符合条件的整数并依次从小到大存入数组中;该整数既是完全平方数,又有两个数字相同,如144、676等。
请编写函数实现此功能,满足该条件的整数的个数通过所编写的函数返回。
最后调用函数writeDat(),把结果输出到out.dat文件中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDat()的内容。
#include<stdio.h>
jsValue(int bb[])


void writeDat(int num,int b[])

FILE *out;
int i;
out=fopen("out.dat","w");
printf("%d\n",num);
fprintf(out,"%d\n",num);
for(i=0; i<num;i++)

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

fclose(out);

main()

int b[20],num;
num=jsValue(b);
writeDat(num,b);

答案

参考答案:

jsValue(int bb[])

{

int i,a,b,c,cnt=0;

for(i=A0;i*i<A000;i++) /*循环遍历所有平方是三位数的整数*/

a=i,i/A00; /*取当前数平方的百位数字*/

b=i,i/A0%A0; /*取当前数平方的十位数字*/

c=i*i%A0; /*取当前数平方的个位数字*/

if(a==b||b==c||c==a) /*判断a、b、c中是否有任意两个相等*/

bb[cnt++]=i*i;/*将该数的平方保存到数组bb中,并使计数值cnt增A*/

}

return cnt; /*返回找到的个数*/

}

单项选择题
单项选择题