输入一个正整数n,输出2/1➕3/2➕5/3➕…的前n项之和,保留两位小数。编写此程序
时间: 2024-10-22 20:14:15 浏览: 8
要计算序列 \( \frac{2}{1} + \frac{3}{2} + \frac{5}{3} + \ldots \) 的前 n 项之和并保留两位小数,这个序列实际上是著名的调和数列(Harmonic series),每一项的分子比分母大 1。我们可以使用一个循环来逐步累加这些分数,然后用 `printf` 函数以保留两位小数的形式输出结果。
以下是一个简单的 C 语言程序实现:
```c
#include <stdio.h>
double harmonic_sum(int n) {
double sum = 0;
for (int i = 1; i <= n; i++) {
// 计算每个分数,i 是分母
double fraction = (double) i / (i + 1);
// 累加到总和
sum += fraction;
}
return sum;
}
int main() {
int n;
printf("请输入一个正整数 n: ");
scanf("%d", &n);
if (n > 0) { // 检查输入是否为正整数
double result = harmonic_sum(n);
printf("2/1+3/2+5/3+... 的前 %d 项之和(保留两位小数): %.2f\n", n, result);
} else {
printf("无效输入!请输入一个正整数。\n");
}
return 0;
}
```
在这个程序中,`harmonic_sum` 函数负责计算前 n 项的和,而 `main` 函数处理用户输入,并确保结果只显示两位小数。
阅读全文