活动设计题
请编写函数fun,它的功能是计算并返回n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中从键盘给n输入20后,输出为s=0.583333。
注意:要求n的值不大于1000部分源程序存放在文件PROG1.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下:
#include <stdio.h>
double fun(int n)
{
}
main()
{ int n; double s;
void NONO( );
printf('\nInput n: '); scanf('%d',&n);
s=fun(n);
printf('\n\ns=%f\n',s);
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen('..\\in.dat','r') ;
wf = fopen('..\\out.dat','w') ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, '%d', &n) ;
s = fun(n) ;
fprintf(wf, '%lf\n', s) ;
}
fclose(rf) ; fclose(wf) ;
}
【正确答案】double fun(int n) { int i; double sum=0.0; for(i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i; return sum; } 答案考生文件夹
【答案解析】本程序中的循环语句用来遍历n以内的所有自然数,条件语句用来判断该数能否被5或9整除。注意:此处判断条件中应使用逻辑或“‖”运算符,变量sum累加符合要求数的倒数和。