设为首页 加入收藏

TOP

[C语言]模拟计算器
2015-11-25 13:22:08 来源: 作者: 【 】 浏览:42
Tags:语言 模拟 计算器
#include 
#include 
 
int _add(int a, int b)
{
    return a + b;
}
int _sub(int a, int b)
{
    return a - b;
}
int _mul(int a, int b)
{
    return a*b;
}
int _div(int a, int b)
{
    if (b == 0)
    {
    printf("除数位0\n");
    }
    return a / b;
}
 
void menu()
{
    printf("*************************\n");
    printf("**** 1.add   2.sub   ****\n");
    printf("**** 3.mul   4.div   ****\n");
    printf("******** 0.exit *********\n");
    printf("*************************\n");
}
 
int main()
{
    int input = 1;
    int num1 = 0;
    int num2 = 0;
    int ret = 0;
    while (input)
    {
    menu();
    printf("请选择>:");
    scanf("%d", &input);
    printf("请输入两个整数操作数>:");
    scanf("%d%d", &num1, &num2);
    switch (input)
    {
    case 1:
        ret = _add(num1, num2);
        break;
    case 2:
        ret = _sub(num1, num2);
        break;
    case 3:
            ret = _mul(num1, num2);
        break;
    case 4:
        ret = _div(num1, num2);
        break;
    case 0:
        exit(EXIT_FAILURE);
        break;
    default:
        printf("选择错误,请重新选择.\n");
        break;
    }
    printf("ret = %d\n", ret);
    }
    return 0;
}
 
 
此外,也可以用枚举结构(enum)实现:
 
#include 
#include 
 
enum OP
{
    EXIT,
    ADD,
    SUB,
    MUL,
    DIV
};
int _add(int a, int b)
{
    return a + b;
}
int _sub(int a, int b)
{
    return a - b;
}
int _mul(int a, int b)
{
    return a*b;
}
int _div(int a, int b)
{
    if (b == 0)
    {
    printf("除数位0\n");
    }
    return a / b;
}
 
void menu()
{
    printf("*************************\n");
    printf("**** 1.add   2.sub   ****\n");
    printf("**** 3.mul   4.div   ****\n");
    printf("******** 0.exit *********\n");
    printf("*************************\n");
}
 
int(*pfun[5])(int, int) = {0, _add, _sub, _mul, _div};
 
int main()
{
    int input = 1;
    int num1 = 0;
    int num2 = 0;
    int ret = 0;
    while (input)
    {
    menu();
    printf("请选择>:");
    scanf("%d", &input);
    printf("请输入两个整数操作数>:");
    scanf("%d%d", &num1, &num2);
    if (input >= 1 && input <= 4)
        {
            ret = pfun[input](num1, num2);
        }
        else if (input == 0)
        {
            exit(EXIT_FAILURE);
        }
        else
        {
            printf("选择错误\n");
        }
    printf("ret = %d\n", ret);
    }
    return 0;
}

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言多线程中变量累加问题的分析 下一篇C语言-->>左旋字符串

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: