A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lixp 中级黑马   /  2015-10-30 18:23  /  657 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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);
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马