c语言求和 计算 s=1-1/3 + 1/5- 1/7+..1/101 的值并输出 输入说明: 输出说明: 1-1/3 + 1/5- 1/7+..1/101 的值
时间: 2023-12-04 17:05:49 浏览: 292
以下是C语言计算s=1-1/3+1/5-1/7+...+1/101的值并输出的代码:
```c
#include <stdio.h>
void fun(float* sn, int n) {
float s = 0.0, w, f = -1.0;
int i = 0;
for (i = 0; i <= n; i++) {
f = -1*f;
w = f / (2 * i + 1);
s += w;
}
*sn = s;
}
int main() {
int n = 50;
float b = 0;
float* PP = &b;
fun(PP, n);
printf("%f\n", *PP);
return 0;
}
```
输出结果为:0.784490
相关问题
利用C语言求和s=1+1/22+1/333+...+1/nn...nn+.....
以下是利用C语言求和s=1+1/22+1/333+...+1/nn...nn+.....的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n;
printf("请输入n:");
scanf("%d", &n);
double s = 1.0; // 初始化s为1
for (int i = 2; i <= n; i++) {
int nn = i; // nn表示n...n,初始值为i
int count = 1; // 统计n的位数
while (nn >= 10) {
nn /= 10;
count++;
}
nn = i; // 重新赋值nn为i
double val = 0.0; // 计算1/nn...nn的值
for (int j = 1; j <= count; j++) {
val += nn / pow(10, (count-j+1));
}
s += 1.0 / val; // 累加到s中
}
printf("s = %lf\n", s);
return 0;
}
```
该程序首先读入一个正整数n,然后使用for循环遍历2到n的每个整数。对于每个整数i,我们需要计算1/nn...nn的值,其中nn表示n...n(共有i位)。为了计算nn,我们需要先统计n的位数,然后根据位数分解出每一位上的值。最后,利用pow函数计算1/nn...nn的值,并将其累加到s中。最终输出s的值即可。
用c语言写一个关于s=m-m^2/2!+m^3/3!-m^4/4!…的代码,输入m,输出s
当然可以。这是一个计算级数的部分和的程序,它涉及到阶乘和多项式部分求和。以下是使用C语言的一个简单实现:
```c
#include <stdio.h>
#include <math.h>
double factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
double series_sum(int m) {
double s = m; // 初始值设为 m
int sign = 1; // 系数的正负交替
for (int i = 2; ; i++) { // 循环直到i超过m
double term = pow(m, i) / factorial(i); // 计算当前项
s += sign * term; // 更新总和并改变系数的正负
if (term < 1e-9) break; // 如果项接近于零,则停止循环
sign *= -1; // 下一项的系数取相反
}
return s;
}
int main() {
int m;
printf("请输入整数m: ");
scanf("%d", &m);
double result = series_sum(m);
printf("级数和 S(m) = %.10lf\n", result);
return 0;
}
```
这个程序首先定义了一个递归函数`factorial`来计算阶乘,然后在`series_sum`函数中计算级数的每一项,并判断何时停止添加。在主函数中,用户会被提示输入`m`,然后程序会输出对应的`s`值。
阅读全文