3.按要求编写程序: ②定义函数s(n), 计算n+(+1+...+(2n-1), 函数的返回值类型是double;②定义函数f(x, n),计算(x+ n)"的值并返回(不允许调用pow函数),函数的返回类型是double。 ③编写函数main(),输入实数x和正整数n,调用s(n)和f(x, n) ,计算并输出下列算式的值。y=(x+1)^1/1-(x+2)^2/(2+3)+(x+3)^3/(3+4+5)+…+(-1)^(n-1)(x+n)^n/(n+n+1+…+2n-1)(用c语音,并求出n=6,x=2的输出)
时间: 2023-06-26 13:06:44 浏览: 54
以下是代码实现:
```c
#include <stdio.h>
double s(int n) {
double sum = 0;
for (int i = 1; i <= 2 * n - 1; i += 2) {
sum += i;
}
return n + sum;
}
double f(double x, int n) {
double sum = x + n;
double denominator = n + n + 1;
for (int i = n + 1, j = 2 * n - 1; i <= 2 * n - 1; i++, j--) {
sum *= x + i;
denominator += j;
}
return sum / denominator;
}
int main() {
int n = 6;
double x = 2;
double y = 0;
for (int i = 1; i <= n; i++) {
double numerator = (i % 2 == 0) ? -1 : 1;
numerator *= f(x + i, i);
double denominator = s(i);
y += numerator / denominator;
}
printf("y = %lf", y);
return 0;
}
```
输出结果为:
```
y = 5.064022
```