一:3位整数 下列程序的功能是:在3位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组b中;它既是完全平方数,又有两位数字相同,例如144,676等。 请编制函数int jsValue(int bb[])实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat()把结果输出到文件OUT88.DAT中。 【答案】 int jsValue(int bb[ ]) { int i,j; /*定义循环控制变量*/ int cnt=0; /*定义计数器变量*/ int a3,a2,a1; /*定义变量存储3位数每位的数字*/ for(i=100;i<=999;i++) /*在该范围中找符合条件的数*/ for(j=10;j<=sqrt(i);j++) if(i==j*j) /*如果该数是完全平方数*/ { a3=i/100; /*求该数的百位数字*/ a2=i%100/10; /*求该数的十位数字*/ a1=i%10; /*求该数的个位数字*/ if(a3==a2 || a3==a1 || a2==a1) /*若有两位数字相同*/ { bb[cnt]=i; /*则把该数存入数组bb中*/ cnt++; /*统计满足条件的数的个数*/ } } } return cnt; /*返回满足该条件的整数的个数*/ } 【解析】解答本题,首先应该考虑用一个for循环来依次取得100到999之间的各个数,接着我们再利用一个循环用10以上的两位数逐个去拆被判断的数,如果被判断的数恰好可以被完全拆分,则该数是一个完全平方数,接着就开始依次求得被判断的数的百位、十位、个位上的数值,看是否有两位数字相同。把满足条件的数存入数组bb中,并用计数器变量cnt来统计满足条件的数的个数。最后将cnt作为函数值返回。
|