问答题 编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如,若n为1000时,程序输出应为:s=153.909064。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
[试题源程序]
#include<math.h>
#include<stdio.h>
double fun(int n)
{
}
main()/*主函数*/
{void NONO();
printf("s=%f/n",fun(1000));
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i,n;
double s;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d",&n);
s=fun(n);
fprintf(wf,"%f/n",s);
}
fclose(fp);
fclose(wf);
}
【正确答案】
【答案解析】double fun(int n)
{
double sum=0.0;
int i;
for(i=21;i<=n;i++)
{
if((i%3==0)&&(i%7==0))sum+=i;//同时能被3与7整除
}
return sqrt(sum);
}