c语言输入1/2+1/3+1/4+……+1/100求和
时间: 2023-11-13 09:03:45 浏览: 150
这道题目可以使用引用中提到的思路,使用for循环遍历打印出分数,进行正负数间隔转换,最后求和即可。具体代码实现如下:
```
#include <stdio.h>
int main() {
int i = 0;
double sum = 0.0;
int sign = 1;
for (i = 2; i <= 100; i++) {
sum += sign * 1.0 / i;
sign = -sign;
}
printf("%lf", sum);
return 0;
}
```
相关问题
c语言数列求和2/1+3/2+5/3
以下是C语言计算数列2/1+3/2+5/3的和的代码:
```c
#include <stdio.h>
void main(){
double x=2,y=1,sum=0,t;
int i,n;
printf("请输入求和通项:");
scanf("%d",&n);
for(i=1;i<=n;i++){
sum+=x/y;
t=x;
x=y+x;
y=t;
}
printf("2/1,3/2,5/3,8/5,13/8,21/13……前%d项和为:%f \n",n,sum);
}
```
运行结果:
```
请输入求和通项:3
2/1,3/2,5/3,8/5,13/8,21/13……前3项和为:4.166667
```
c语言1/2-2/3+3/4-……+n/(n+1) 求和
以下是C语言求解1/2-2/3+3/4-……+n/(n+1)的和的代码实现:
```c
#include <stdio.h>
int main() {
int m, n, i, j;
double sum;
scanf("%d", &m); // 输入测试实例的个数
for (i = 0; i < m; i++) {
scanf("%d", &n); // 输入每个测试实例的n值
sum = 0;
for (j = 1; j <= n; j++) {
if (j % 2 == 1) { // 判断正负号
sum += (double)j / (j + 1);
} else {
sum -= (double)j / (j + 1);
}
}
printf("%.2lf\n", sum); // 输出结果,保留两位小数
}
return 0;
}
```
该程序首先输入测试实例的个数m,然后输入每个测试实例的n值,接着使用for循环计算1/2-2/3+3/4-……+n/(n+1)的和,并根据正负号进行加减操作,最后输出结果,保留两位小数。