指向函数的指针(函数指针)

#include <stdlib.h>
#include <stdio.h>
int Compare(int ,int ,int (*Fun)(int ,int ));//比较大小的函数
int GetMax(int ,int );//取最大值函数
int GetMin(int ,int );//取最小值函数
int GetAverage(int ,int );//去取平均值函数
int main()
{
    int Number1 = 0,Number2 = 0;
    int Result[3],i =0 ;//Result数组用来存存储的最大值,最小值和平均值
    printf("output:
input two numbers:
");    
    scanf("%d%d",&Number1,&Number2);
    if(Number1 == Number2)
    {
        printf("输入二个不同的数字:
");
        return 0;
    }
    /*在start和end之间完成对compare函数的调用和参数的传递以及返回值的存储*/
    /******start******/
    Result[0]=Compare(Number1,Number2,GetMax);
    Result[1]=Compare(Number1,Number2,GetMin);
    Result[2]=Compare(Number1,Number2,GetAverage);

    /******end******/
    printf("
最大数 最小数 平均值
");
    for(i=0;i<3;i++)
    {
        printf("%6d",Result[i]);
    }
    printf("
");
    system("pause");
    return 0;
}

int Compare(int x,int y,int (*Fun)(int ,int ))
{
    //完成对GetMax,Getmin,Getaverage函数的调用和函数的返回值
    return (*Fun)(x,y);
}

int GetMax(int x,int y)
{
    return (x>y)? x:y;
}

int GetMin(int x,int y)
{
    return (x>y)? y:x;
}

int GetAverage(int x,int y)
{
    return (x+y)/2;
}
原文地址:https://www.cnblogs.com/whl2012/p/3617581.html