通过指针调用函数,并从键盘控制调用不同的函数,求两个数的最大或最小值,初级代码如下:
#include<stdio.h>
int main()
{
int max(int x,int y);
int min(int x,int y);
int a,b,c,d;
printf(“please enter:”);
scanf("%d %d",&a,&b);
printf(“please enter 1 or 2:”);
scanf("%d",&d);
if(d==1)
{
int(*pointer_1)(int,int);
pointer_1=max;
c=(*pointer_1)(a,b);
printf("%d %d \nmax=%d\n",a,b,c);
}
else
{
int (*pointer_1)(int,int);
pointer_1=min;
c=(*pointer_1)(a,b);
printf(“a=%d b=%d\nmin=%d\n”,a,b,c);
}
return 0;
}
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else
z=y;
return z;
}
int min(int x,int y)
{
int z;
if(x<y)
z=x;
else
z=y;
return z;
}
进阶代码如下:
#include<stdio.h>
int main()
{
int max(int x,int y);
int min(int x,int y);
int a,b,c,d;
printf(“please enter:”);
scanf("%d %d",&a,&b);
printf(“please enter 1 or 2:”);
scanf("%d",&d);
int(*pointer_1)(int,int);
if(d1)
pointer_1=max;
else
{pointer_1=min;}
c=(*pointer_1)(a,b);
printf("%d %d \n",a,b);
if(d1)
printf(“max=%d\n”,c);
else
printf(“min=%d\n”,c);
return 0;
}
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else
z=y;
return z;
}
int min(int x,int y)
{
int z;
if(x<y)
z=x;
else
z=y;
return z;
}
结果如图: