请编写函数fun(),该函数的功能是:计算并输出 S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5) 例如,若主函数从键盘给n输入20后,则输出为 s=534.188884。 注意;部

admin2010-11-26  14

问题 请编写函数fun(),该函数的功能是:计算并输出
   S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)
   例如,若主函数从键盘给n输入20后,则输出为
   s=534.188884。
   注意;部分源程序给出如下。
   请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
   试题程序:
   #include <math. h>
   #include <stdio. h>
   double fun(int n)
   {
   }
   main()
   {
     int n;
     double s;
     printf("\n\nInput n: ");
     scanf ("%d", &n);
     s=fun (n)
     printf ("\n\ns=%f\n\n", s);
}

选项

答案double fun(int n) { int i; double s=0.0,s1=0.0; for(i=1;i<=n; i++) {s1=s1+pow(i,0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; }

解析 我们先用数学的思路读懂该程序,并用1个字符表示“()”内的值。在本程序中用s1来表示题中每个小括号内的值,第1项相当于有1个10.5次方(它还是1),第2项相当于第1项的值加上200.5次方,第3项相当于第2项的值加上30.5次方,…,依次类推。函数pow (x,y)的功能是求出x的y次方,该函数已在库函数<math. h>中定义(即可直接使用)。要程序中用s来表示总的结果,每1次循环加1次s1即加1项。
转载请注明原文地址:https://jikaoti.com/ti/rBkiFFFM
0

相关试题推荐
随机试题
最新回复(0)