c语言编写程序,求出以下分数序列的前n项之和:2/1,3/2,5/3,8/5,13/8,21/13…
时间: 2023-12-13 22:05:15 浏览: 53
以下是使用C语言编写的程序,求出给定分数序列的前n项之和:
```c
#include <stdio.h>
int main() {
int n;
double sum = 0.0, a = 2.0, b = 1.0, c;
printf("请输入需要求和的项数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += a / b;
c = a + b;
b = a;
a = c;
}
printf("前%d项的和为:%.2f\n", n, sum);
return 0;
}
```
程序中使用了双精度浮点数类型`double`,以保证计算结果的精度。其中,变量`a`和`b`分别表示分数序列的分子和分母,变量`c`用于交换`a`和`b`的值,以便计算下一项分数。循环中,先将当前项的分数加到`sum`中,然后计算下一项分数的分子和分母,并更新`a`和`b`的值。最后输出计算结果即可。
相关问题
编写一个c语言程序,求下列分数序列的前20项之和:2/1+3/2+5/3+8/5+13/8+
```
#include <stdio.h>
int main() {
int i;
double a = 2, b = 1, c, sum = 0;
for (i = 1; i <= 20; i++) {
sum += a / b;
c = a;
a = a + b;
b = c;
}
printf("前20项之和为:%.2f\n", sum);
return 0;
}
```
运行结果:
```
前20项之和为:32.66
```
编写一个C语言程序,求分数序列:1/2+2/3+3/5+5/8+8/13…的前20项和
以下是一个求解分数序列前20项和的C语言程序:
```c
#include <stdio.h>
int main() {
int i;
double a = 1, b = 2, sum = 0, tmp;
for (i = 1; i <= 20; i++) {
sum += b / a;
tmp = a + b;
a = b;
b = tmp;
}
printf("分数序列前20项和为:%.2f\n", sum);
return 0;
}
```
程序中使用了两个变量a和b来表示分子和分母,初始值分别为1和2。在循环中,计算当前项的值并加到sum变量中,然后更新a和b的值,使它们分别变为上一个分数的分母和分子之和。循环20次后,输出sum的值即为所求的分数序列前20项的和。