c语言输入一个正整数 n,输出 2/1+3/2+5/3+8/5 +…的前 n 项之和,保留 2 位小数。 该序列从第 2 项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
时间: 2023-11-18 22:23:06 浏览: 129
c++求1+1/2+1/3+...+1/n
5星 · 资源好评率100%
好的,这是一个比较典型的数列求和问题,可以使用循环结构来解决。
下面是 C 语言的代码实现:
```c
#include <stdio.h>
int main()
{
int n, i;
double sum = 0, a = 2, b = 1;
printf("请输入 n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum += a / b;
double temp = a;
a = a + b;
b = temp;
}
printf("前 %d 项之和为:%.2f\n", n, sum);
return 0;
}
```
代码中,我们首先定义了需要用到的变量,包括 n(输入的正整数)、sum(数列的前 n 项之和)、a(数列中每一项的分子)和 b(数列中每一项的分母)。然后,通过循环结构计算数列的前 n 项之和,并在每次循环中更新 a 和 b 的值,最后输出结果。
需要注意的是,因为题目要求保留 2 位小数,所以在输出结果时需要使用 %.2f 的格式化输出方式。
阅读全文