c语言分数求和 作业内容 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
时间: 2023-11-29 08:47:36 浏览: 35
以下是C语言实现分数求和的代码和解释:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i;
double sum = 0.0;
int sign = 1;
for (i = 1; i <= 100; i++) {
sum += sign * 1.0 / i;
sign = -sign;
}
printf("%lf", sum);
return 0;
}
```
解释:
1. 首先定义一个变量`sum`用于存储求和的结果,初始值为0.0,因为后面要进行浮点数的计算。
2. 定义一个变量`sign`用于记录正负号,初始值为1,因为第一项是正数。
3. 使用for循环遍历1到100,每次循环都进行以下操作:
- 将当前项的值加到`sum`中,注意要将1.0转换为浮点数,否则会进行整数除法。
- 将`sign`取反,以便下一次循环时加上相反的数。
4. 最后输出`sum`的值即可。
相关问题
c语言 求1-1/3+1/5-1/7+……
根据莱布尼茨级数公式,可以求得1-1/3+1/5-1/7+……的值。具体实现如下:
```c
#include <stdio.h>
int main() {
int i;
double sum = 0.0;
int sign = 1;
for (i = 1; i <= 100; i += 2) {
sum += sign * 1.0 / i;
sign = -sign;
}
printf("1-1/3+1/5-1/7+……的值为:%f\n", sum);
return 0;
}
```
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)的和,并根据正负号进行加减操作,最后输出结果,保留两位小数。