编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)。
时间: 2023-11-04 11:06:01 浏览: 87
好的,这个问题是编程问题,可以回答。以下是函数的实现代码:
```c
#include <stdio.h>
double * series(int n) {
static double a[100]; // 定义静态数组,存储需要求和的数列
double *p = a; // 定义指针,指向数组第一个元素
int i;
if (n % 2 == 0) { // 判断 n 是偶数还是奇数
for (i = 2; i <= n; i += 2) {
*p++ = 1.0 / i; // 计算 1/2, 1/4, ..., 1/n 并存储到数组中
}
} else {
for (i = 1; i <= n; i += 2) {
*p++ = 1.0 / i; // 计算 1/1, 1/3, ..., 1/n 并存储到数组中
}
}
*p = 0.0; // 数组末尾要置为 0,作为循环结束的标志
return a; // 返回数组首地址
}
int main() {
int n;
double *p, sum = 0.0;
printf("请输入一个整数 n:");
scanf("%d", &n);
p = series(n); // 调用 series 函数并返回数组首地址
while (*p) { // 利用指针循环遍历数组中的元素并相加
sum += *p++;
}
printf("sum = %.6f", sum);
return 0;
}
```
这段代码实现了题目中要求的函数,当输入为偶数时,计算 1/2, 1/4, ..., 1/n 的和,当输入为奇数时,计算 1/1, 1/3, ..., 1/n 的和,并返回一个指向数组首地址的指针,通过遍历指针来计算数组中元素的和,并输出结果。
阅读全文