注意:部分源程序在考生文件夹下的文件“循环.c”中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
double fun(int n)
{
double res=0;
int flag=1,fz=3,fm=7;
for(int i=1;i<=n;i++)
{
res += fz*1.0/fm*flag;
flag = -flag;
fz+=2;
fm++;
}
return res;
}
double fun(int n) {
int i, sign = 1, numerator = 3, denominator = 7;
double sum = 0.0;
for (i = 1; i <= n; i++) {
sum += sign * (double) numerator / denominator;
sign *= -1;
numerator += 2;
denominator += 1;
}
return sum;
}
供参考:
double fun(int n)
{
int i;
double s;
for (i = 1, s = 0; i <= n; i++)
s += i % 2 ? (2 * i + 1) * 1.0 / (i + 6) : (2 * i + 1) * (-1.0) / (i + 6);
return s;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:答案:
#include<stdio.h>
#include<stdlib.h>
double fun(int n){
double res=0;
for(int i=1;i<=n;i++){
res-=double(n)/double(n+i);
}
return res;
}
int main(){
int n;
scanf("%d",&n);
double y=fun(n);
printf("%.2lf",y);
return 0;
}
解析:直接根据题目要求进行求解,代码中 fun()
函数直接模拟公式计算,注意需要将其中一项的 n 值转化为 double 类型,确保小数除不会出错。