用c语言编写函数,求1/2+3/4…前n项的和
时间: 2024-11-30 07:14:56 浏览: 12
编写函数实现++++…+n-C程序设计语言课件
在C语言中,我们可以创建一个函数来计算从1/2到n/2(n-1)/2...的无穷序列(即等差数列1/2, 3/4, 5/8, ...)的前n项和。由于这个系列是一个几何级数,我们通常会使用公式:
\[ S_n = \frac{a(1 - r^n)}{1 - r} \]
其中 \( a = \frac{1}{2} \) 是首项,\( r = \frac{1}{2} \) 是公比,\( n \) 是项数。
对于有限项的情况,我们需要修改公式并只取前n项的和:
\[ S_n = \frac{\frac{1}{2}(1 - (\frac{1}{2})^n)}{1 - \frac{1}{2}} \]
以下是实现该功能的C语言函数示例:
```c
#include <stdio.h>
double sum_of_series(int n) {
double first_term = 1.0 / 2.0;
double common_ratio = 1.0 / 2.0;
double sum = first_term;
// 只计算前n项
for (int i = 2; i <= n; ++i) {
first_term *= common_ratio;
sum += first_term;
}
return sum;
}
int main() {
int n;
printf("请输入项数n:");
scanf("%d", &n);
if (n > 0) {
double result = sum_of_series(n);
printf("前 %d 项的和为 %.6f\n", n, result);
} else {
printf("项数必须大于0。\n");
}
return 0;
}
```
在这个函数中,`sum_of_series` 函数接受一个整数 `n` 作为输入,并返回前n项的和。在主函数中,用户会被提示输入项数,然后调用此函数并打印结果。
阅读全文