#include<stdio.h>
int add(int a,int b);
int sub(int a,int b);
int multiply(int a,int b);
int divide(int a,int b);
int show_menu();
int (*opreat)(int,int);
int main(int argc,char * argv[]){
int x,y,result;
switch(show_menu()){
case 1:opreat=add;//这儿就是将函数给指针
break;
case 2:opreat=sub;
break;
case 3:opreat=multiply;
break;
case 4:opreat=divide;
break;
default: break;
}
printf("请输入你要计算的两个数:\n");
scanf("%d %d",&x,&y);
result=(*opreat)(x,y);//给指针之后的调用方式
printf("最终结果是:%d\t",result);
return 0;
}
//加法
int add(int a,int b){
return a+b;
}
//减法
int sub(int a,int b){
return a-b;
}
//乘法
int multiply(int a,int b){
return a*b;
}
//除法
int divide(int a,int b){
if(b==0){
printf("除数不能为0!");
return -1;
}else{
return a/b;
}
}
int show_menu(){
char c[20];
//char c;
int s;
printf("--------------------------------\n");
printf("请选择操作:\n");
printf("Enter 1 is add\n");
printf("Enter 2 is sub\n");
printf("Enter 3 is multiply\n");
printf("Enter 4 is divide\n");
printf("--------------------------------\n");
//s=scanf("%c",&c);
s=gets(c);//不知道为啥非得要这种输入。。。 、
return atoi(s);
} |
|