【问题描述】 输入一个大于1的正整数n , 当n为偶数时,计算:1+1/2+1/4+...+1/n; 当n为奇数时,计算:1+1/3+1/5+...+1/n; 【输入形式】 输入一个正整数。 【输出形式】 一个实数。 【样例输入1】 2 【样例输出1】 1.500 【样例输入2】 3 【样例输出2】 1.333 #include <stdio.h> double SumEven(int n); double SumOdd(int n); int main() { int n; double sum;续写
时间: 2024-03-24 10:35:57 浏览: 87
大于1 的正整数n可以分解为:n=x1*x2*…*xm。
5星 · 资源好评率100%
好的,接下来我来续写一下程序的实现:
```c
#include <stdio.h>
double SumEven(int n); // 计算偶数和
double SumOdd(int n); // 计算奇数和
int main() {
int n;
double sum;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n % 2 == 0) { // 如果n是偶数,则计算偶数和
sum = SumEven(n);
printf("1到%d之间的所有偶数的和为%.3f。\n", n, sum);
} else { // 如果n是奇数,则计算奇数和
sum = SumOdd(n);
printf("1到%d之间的所有奇数的和为%.3f。\n", n, sum);
}
return 0;
}
double SumEven(int n) {
double sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
sum += 1.0 / i;
}
}
return sum;
}
double SumOdd(int n) {
double sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 == 1) {
sum += 1.0 / i;
}
}
return sum;
}
```
这个程序的实现比较简单,首先从标准输入中读入一个正整数n。然后判断n的奇偶性,如果n是偶数,则调用SumEven函数计算1到n之间所有偶数的和;如果n是奇数,则调用SumOdd函数计算1到n之间所有奇数的和。最后输出计算结果。
在SumEven函数和SumOdd函数中,我们分别使用一个循环来遍历1到n之间的所有偶数或奇数,然后根据题目给出的公式计算和并返回。需要注意的是,在计算过程中要将分母转换为实数类型,否则计算结果会出现误差。最后输出结果时保留三位小数。
阅读全文