问题 问答题

请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件OUT11.DAT中。例如,若n为1000时,函数值应为s=153.909064。注意:部分源程序已给出。请勿改动主函数main()和输入输出函数progReadWrite()的内容。试题程序:#include#include#includedouble countValue(int n){ }main(){clrscr();printf("自然数之和的平方根=%f\n", countValue(1000));progReadWrite();}progReadWrite(){FILE *wf;int i, n;float s;wf = fopen("OUT11.DAT", "w");s = countValue(1000);fprintf(wf, "%f\n", s);fclose(wf);}

答案

参考答案:double countValue(int n){ double xy=0.0;int i;for(i=1;i

解析:本题的解题思路是:利用一个for循环依次从n个自然数当中取数,对当前取出的数进行条件判断。判断条件为:既能被3整除同时也能被7整除,因此,用“&&”运算符来连接两个条件表达式,当某数满足判断条件时,就把该数累加到变量xy中(xy的初始值为0.0),当所有满足条件的数都被找完后,对累加求得的变量xy的值进行求平方根的计算,并把所求得的结果作为函数值返回。