此题目要求编写一个函数,输入为偶数n时,调用函数求1/2+1/4+...+1/n的和;输入为奇数n时,调用函数求1/1+1/3+...+1/n的和(利用指针函数)。
时间: 2023-11-03 16:04:21 浏览: 95
好的,我可以帮你编写这个函数。以下是函数代码:
```c++
#include <stdio.h>
double evenSum(int n);
double oddSum(int n);
double (*p)(int);
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (n % 2 == 0)
{
p = evenSum;
}
else
{
p = oddSum;
}
double sum = (*p)(n);
printf("和为:%lf\n", sum);
return 0;
}
double evenSum(int n)
{
double sum = 0;
for (int i = 2; i <= n; i += 2)
{
sum += 1.0 / i;
}
return sum;
}
double oddSum(int n)
{
double sum = 0;
for (int i = 1; i <= n; i += 2)
{
sum += 1.0 / i;
}
return sum;
}
```
这个函数使用了指针函数,根据输入的n的奇偶性选择调用evenSum函数或oddSum函数,计算出相应的和。
相关问题
matlab题目 4:编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+...+1/n,当输入 n 为奇数时, 调用函数 1/1+1/3+...+1/n
可以编写一个名为`sum_series`的MATLAB函数,用于计算给定正整数n对应的序列和。这个函数会根据n的奇偶性分别处理两种情况:
```matlab
function result = sum_series(n)
% 检查n是否为偶数
if rem(n, 2) == 0
% 对于偶数n,计算1/2 + 1/4 + ... + 1/n的和
term = 1/n;
result = term;
for i = 1:(n/2 - 1)
term = term * (i + 1);
result = result + term;
end
else
% 对于奇数n,计算1/1 + 1/3 + ... + 1/n的和
result = 0; % 初始化结果为0
for i = 1:n
result = result + 1/i;
end
end
end
```
在这个函数中,我们首先检查n除以2的余数,如果为0,则执行偶数的求和公式;如果为1,则执行奇数的求和公式。
你可以像这样调用该函数:
```matlab
n = 8; % 偶数示例
disp(sum_series(n)) % 输出 1/2 + 1/4 + ... + 1/n 的和
n = 9; % 奇数示例
disp(sum_series(n)) % 输出 1/1 + 1/3 + ... + 1/n 的和
```
Test2.java 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
```java
public class Test2 {
public static void main(String[] args) {
int n = 6;
double sum = 0;
if (n % 2 == 0) {
sum = evenSum(n);
} else {
sum = oddSum(n);
}
System.out.println(sum);
}
public static double evenSum(int n) {
double sum = 0;
for (int i = 2; i <= n; i += 2) {
sum += 1.0 / i;
}
return sum;
}
public static double oddSum(int n) {
double sum = 0;
for (int i = 1; i <= n; i += 2) {
sum += 1.0 / i;
}
return sum;
}
}
```
--相关问题--:
1. Java中什么是指针函数?
2. 如何判断一个数是
阅读全文