指向函数的指针(函数指针)
#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:\ninput two numbers:\n"); scanf("%d%d",&Number1,&Number2); if(Number1 == Number2) { printf("输入二个不同的数字:\n"); 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("\n最大数 最小数 平均值\n"); for(i=0;i<3;i++) { printf("%6d",Result[i]); } printf("\n"); 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; }