有两整数(data1,data2),用户输入1,2或者3,
输入1,程序给出大数
输入2,程序给出小数
输入3,程序求和**
1.先封装三个数,在用指针函数调用
2.会用到switch的选择,定义一个cmd控制面板
#include <stdio.h>
#include <stdlib.h>
//大数
int getMaxData(int data1,int data2)
{
return data1>data2?data1:data2;
}
//小数
int getMinData(int data1,int data2)
{
return data1<data2?data1:data2;
}
//求和
int getSumData(int data1,int data2)
{
return data1+data2;
}
int dataHandler(int data1,int data2,int (*pfanc)(int ,int ))
{
return (*pfanc)(data1,data2);
}
int main()
{
int data1=10;
int data2=20;
int cmd;
int ret;
int (*pfanc)(int ,int );
printf("请输入1(取大值),输入2,取小值,或者输入3,求和:\n");
scanf("%d",&cmd);
switch(cmd){
case 1:
pfanc=getMaxData;
break;
case 2:
pfanc=getMinData;
break;
case 3:
pfanc=getSumData;
break;
default:
printf("输入错误,@请输入1(取大值),输入2,取小值,或者输入3,求和\n");
exit(-1);
break;
}
ret= dataHandler(data1,data2,pfanc);
printf("ret=%d\n",ret);
return 0;
}
运行代码
D:\Cyuyan\Address>a.exe
请输入1(取大值),输入2,取小值,或者输入3,求和:
1
ret=20
D:\Cyuyan\Address>a.exe
请输入1(取大值),输入2,取小值,或者输入3,求和:
2
ret=10
D:\Cyuyan\Address>a.exe
请输入1(取大值),输入2,取小值,或者输入3,求和:
3
ret=30
D:\Cyuyan\Address>a.exe
请输入1(取大值),输入2,取小值,或者输入3,求和:
4
输入错误,@请输入1(取大值),输入2,取小值,或者输入3,求和