c语言 通过函数求级数a=2/1+3/2+5/3+8/5+13/8+21/13…的前n项之和,n通过函数参数传递。在主函数中输入n,调用函数输出结果
时间: 2023-11-18 16:04:47 浏览: 69
下面是一个实现该功能的函数代码:
```c
#include <stdio.h>
double series_sum(int n)
{
double a = 2, b = 1, c, sum = 0;
int i;
for (i = 1; i <= n; i++)
{
sum += a / b;
c = a + b;
b = a;
a = c;
}
return sum;
}
int main()
{
int n;
printf("请输入n: ");
scanf("%d", &n);
printf("级数前%d项之和为: %.2f\n", n, series_sum(n));
return 0;
}
```
这里使用了循环来计算级数的前n项之和,其中a和b分别表示每一项的分子和分母,c用于交换a和b的值,sum用于累加每一项的和。最后在主函数中输入n并调用函数输出结果。
相关问题
C语言 通过函数求级数a=2/1+3/2+5/3+8/5+13/8+21/13...的前n项之和,n通过函数参数传递。在主函数中输入n调用函数输出结果
下面是通过函数求级数的C语言代码:
```c
#include <stdio.h>
double sum(int n) {
double a = 2.0, b = 1.0, c, s = 2.0;
int i;
for (i = 2; i <= n; i++) {
c = a + b;
s += c / b;
b = a;
a = c;
}
return s;
}
int main() {
int n;
double s;
printf("请输入n:");
scanf("%d", &n);
s = sum(n);
printf("前%d项之和为:%lf\n", n, s);
return 0;
}
```
在函数`sum`中,我们用变量`a`和`b`表示数列中相邻两项,用变量`c`表示它们的和。初始值为`a=2.0`,`b=1.0`,因此第一项为`2/1`,第二项为`3/2`,第三项为`5/3`,以此类推。在循环中,我们先求出`c=a+b`,然后将`b`赋值给`a`,将`c`赋值给`b`,这样就可以计算出数列中的每一项。在每次循环中,我们将`c/b`加到`s`中,最后返回`s`,即为前`n`项的和。
在主函数中,我们先输入`n`,然后调用`sum`函数计算前`n`项的和,最后输出结果。
编写c语言程序,通过函数求级数a=2/1+3/2+5/3+8/5+13/8+21/13....的前n项和,n通过函数参数传递,在主函数中输入n,调用函数输出结果 编写c语言程序,通过函数求级数a=2/1+3/2+5/3+8/5+13/8+21/13....的前n项和,n通过函数参数传递,在主函数中输入n,调用函数输出结果
以下是求解该级数前n项和的C语言程序:
```c
#include <stdio.h>
double sum(int n);
int main()
{
int n;
printf("请输入n:");
scanf("%d", &n);
printf("前%d项和为%f\n", n, sum(n));
return 0;
}
double sum(int n)
{
double a = 2, b = 1, c;
double s = 0;
int i;
for (i = 1; i <= n; i++)
{
s += a / b;
c = a + b;
b = a;
a = c;
}
return s;
}
```
程序中的sum函数用于计算级数前n项的和。在主函数中输入n后,调用sum函数并输出结果。
阅读全文