C语言读入1个正整数n(n<=100),计算并输出1+1/3+1/5+1/+……的前n项和(保留3位小数)。源代码
时间: 2024-10-29 07:20:43 浏览: 43
在C语言中,你可以使用`<stdio.h>`库来处理输入和输出,`<math.h>`库来进行浮点数运算。以下是一个简单的程序来计算序列的和:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
double sum_series(int n);
int main() {
int n;
printf("请输入一个正整数n (不超过100): ");
scanf("%d", &n);
// 检查输入是否有效
if (n > 100 || n <= 0) {
printf("输入错误,请输入1到100之间的正整数。\n");
return 1;
}
double result = sum_series(n);
printf("前 %d 项和 (保留3位小数): %.3f\n", n, result);
return 0;
}
// 计算交错级数的函数
double sum_series(int n) {
double denominator = 1.0; // 初始化分母为1
double term = 1.0 / denominator; // 初始化每一项为1除以分母
double partial_sum = term; // 初始和为第一项
for (int i = 2; i <= n; i++) { // 从第二项开始
denominator += 2; // 每次增加2,得到奇数项的分母
term = 1.0 / denominator; // 更新当前项
partial_sum += term; // 加上当前项到和中
}
return round(partial_sum * 1000) / 1000.0; // 四舍五入到3位小数
}
```
在这个程序中,我们首先让用户输入一个正整数n,然后检查其有效性。接着,我们定义了一个递归函数`sum_series`来计算序列的和,最后输出结果。
阅读全文