计算 s=1-1/3 + 1/5- 1/7+..1/101 的值并输出用循环语句
时间: 2023-11-18 14:05:13 浏览: 228
根据引用和引用,可以使用以下C语言代码计算s=1-1/3+1/5-1/7+...+1/101的值并输出:
```c
#include <stdio.h>
void fun(float *sn, int n);
int main() {
float s1;
fun(&s1, 50); // n=50,计算前50项
printf("s1=%f\n", s1);
return 0;
}
void fun(float *sn, int n) {
float s = 0.0, w, f = -1.0;
int i; for (i = 0; i <= n; i++) {
f = (-1) * f;
w = f / (2 * i + 1);
s += w;
}
*sn = s;
}
```
输出结果为:s1=0.784490
相关问题
用while循环实现 s=1-1/2+1/3-1/4+…+1/100
以下是用while循环实现 s=1-1/2+1/3-1/4+…+1/100的代码:
```python
sum1 = 0
i = 1
while i <= 100:
sum1 += (-1)**(i+1)/i
i += 1
print(sum1)
```
代码解释:首先定义变量sum1和i,分别表示累加和和当前的分母。然后使用while循环,当i小于等于100时,执行循环体内的语句。循环体内先计算当前分数的值,然后加到累加和上,最后将分母加1。循环结束后,输出累加和即可。
利用循环语句 for 计算求和问题: s=2/1-3/2+5/3-8/5+…前n项
根据引用中提供的公式,可以得到s的计算公式为:s=2/1-3/2+5/3-8/5+…前n项。其中,分子为奇数项的值,分母为对应奇数项的前一项的值。根据引用中提供的代码,可以编写如下代码来计算s的值:
```c
#include <stdio.h>
void fun(float *sn, int n);
int main() {
int n;
float s;
printf("Please input n: ");
scanf("%d", &n);
fun(&s, n);
printf("s = %f\n", s);
return 0;
}
void fun(float *sn, int n) {
float s = 0.0, w, f = -1.0;
int i;
for (i = 0; i <= n; i++) {
f = -f;
w = f / (2 * i + 1);
s += w;
}
*sn = s * 2;
}
```
其中,fun函数的作用是计算s的值,并将结果通过指针sn返回。在主函数中,首先输入n的值,然后调用fun函数计算s的值,并输出结果。