问答题 请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后将结果s输出到文件OUT87.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()和输入输出函数progReadWrite()的内容。
试题程序:
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
void progReadWrite();
double countValue(int n)


void main()

system("CLS");
printf("自然数之和的平方根=% f/n",countValue(1000));
progReadWrite();

void progReadWrite()

FILE * wf;
double s;
wf=fopen("OUT87.DAT","w");
s=countValue(1000);
fprintf(wf,"% f/n",s);
fclose(wf);


【正确答案】double countValue(int n)
{
int i; /*定义循环控制变量*/
double sum=0.0; /*存储满足条件的自然数之和,继而求出平方根*/
for(i=1;i<n;i + +) /*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/
if(i%3==0 && i%7==0)
sum+=i;
sum=sqxt((double)sum); /*再对总和求平方根*/
return sum;
}
【答案解析】[解析] 本题的解题思路是:利用一个for循环依次从n个自然数当中取数,对当前取出的数进行判断。判断条件为:既能被3整除同时也能被7整除。当某数满足判断条件时,就把该数累加到变量sum中。当该范围内所有满足条件的数都找完后,对累加求得的变量sum的值进行求平方根的计算,并把所求得的结果作为函数值返回。