利用指向函数的指针编程

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:37:39
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
注意~~要利用指向函数的指针~~不用指针这个题很简单~~但是用指针总感觉有一种画蛇添足的感觉~~望高手赐教如何用函数指针解决这个问题
编程环境是VC

函数指针有时候是很有用的,比如在结构体中定义函数指针就可以在C语言中实现类似C++的类成员函数的特性.

下面的程序定义了一个函数指针数组,根据输入数字的余数(1或0),不用if else就能调用相应的函数了.

// 输入为奇数
void FuncOdd(int n)
{
float i, nIterator = 0;

printf("You entered an odd number.\n");

for (i = 1; i <= n; i+=2)
{
nIterator+=1/i;
}

printf("And the result is: %f\n",nIterator);
}

// 输入为偶数
void FuncEven(int n)
{
float i, nIterator = 0;

printf("You entered an even number;\n");

for (i = 2; i <= n; i+=2)
{
nIterator+=1/i;
}

printf("And the result is: %f\n",nIterator);
}

int main()
{
int nInput = 0; // 存放输入的数字

void (*func[2])(int); // 定义函数指针,指向两个不同的函数
func[0] = FuncEven;
func[1] = FuncOdd;

printf("Please