c语言完成:编写函数fun,其 功能是:计算数列:2/1,3/2,5/3,8/5, 13/8,21/13...前n项之和。在主函数中调用 fun,输出结果。 示例:输入“3”,输出“5.166667”
时间: 2023-02-13 08:48:21 浏览: 55
你可以使用以下代码来完成这个任务:
```
#include <stdio.h>
double fun(int n) {
double sum = 0;
double a = 2, b = 1; // a/b 为当前数列的项
for (int i = 0; i < n; i++) {
sum += (double) a / b; // 计算当前数列的项并累加到 sum 上
// 更新 a 和 b 的值
int temp = a;
a = a + b;
b = temp;
}
return sum;
}
int main() {
int n;
printf("请输入数列的项数:");
scanf("%d", &n);
printf("前 %d 项之和为:%.6lf\n", n, fun(n));
return 0;
}
```
示例输入输出:
```
请输入数列的项数:3
前 3 项之和为:5.166667
```
相关问题
C语言编程(编写fun函数):函数fun是根据输入n,求下面数列前n项的和 s=1/2-1/2*3/4+1/2*3/4*5/6-1/2*3/4*5/6*7/8…,输入10,结果:0.206936。
以下是编写函数fun的C语言代码:
```
#include <stdio.h>
double fun(int n) {
double s = 0.5;
double prod = 1.0;
for (int i = 2; i <= n; i++) {
prod *= (2.0 * i - 3) / (2.0 * i - 2);
s += (i % 2 == 0 ? -1 : 1) * prod;
}
return s;
}
int main() {
int n = 10;
double s = fun(n);
printf("The sum of the first %d terms is: %.6f\n", n, s);
return 0;
}
```
函数fun的输入参数是整数n,返回值是前n项数列的和。在函数内部,我们用变量s来存储和的值,初始值为0.5,因为第一个数是1/2。用变量prod来存储每一项的乘积,初始值为1.0,因为第一项是1。
然后,我们用for循环从2到n遍历每一项,每次更新prod和s的值。prod的更新公式为:
```
prod *= (2.0 * i - 3) / (2.0 * i - 2);
```
这是因为每一项的分子是2i-3,分母是2i-2,所以我们可以用这个公式来更新prod的值。
s的更新公式为:
```
s += (i % 2 == 0 ? -1 : 1) * prod;
```
这是因为奇数项的符号为正,偶数项的符号为负,我们可以用三目运算符来判断。
最后,我们在主函数中调用fun函数,输入n=10,得到结果0.206936,用printf函数输出即可。
c语言编写子函数fun求一分数序列 2/1, 3/2, 5/3, 8/5, 13/8, 21/13…的前n 项之和并列出表达式
以下是C语言编写的子函数fun求一分数序列 2/1, 3/2, 5/3, 8/5, 13/8, 21/13…的前n项之和的代码:
```c
#include <stdio.h>
double fun(int n)
{
double sum = 0.0;
double a = 2.0, b = 1.0, c;
for (int i = 1; i <= n; i++)
{
sum += a / b;
c = a + b;
b = a;
a = c;
}
return sum;
}
int main()
{
int n = 6;
printf("前%d项之和为:%lf\n", n, fun(n));
return 0;
}
```
表达式为:2/1, 3/2, 5/3, 8/5, 13/8, 21/13…
相关问题:
--相关问题--:
1. 如何在C语言中输出分数?
2. 如何在C语言中实现斐波那契数列?
3