C语言实现计算器的两种方法

本文实例为大家分享了C语言实现计算器的具体代码,供大家参考,具体内容如下

C语言计算器两种方法

//一般做法
#include<stdio.h>
#include<windows.h>
//#include<assert.h>
void menu()
{
    printf("**************************\n");
    printf("****欢迎来到计算器页面****\n");
    printf("**** 1.add    2.mul  *****\n");
    printf("*****3.sub    4.div1 *****\n");
    printf("*****0.exit          *****\n");
    printf("**************************\n");
}

int add(int x, int y)
{
    return x + y;
}

int mul(int x, int y)
{
    return x * y;
}

int sub(int x, int y)
{
    return x - y;
}

int div1(int x, int y)
{
    return x / y;
}

int main()
{
    int n = 1;
    menu();
    while (n)
    {
        printf("请输入选项:\n");
        scanf("%d", &n);
        int x = 0, y = 0;
        /*printf("请输入两个整数!\n");
        scanf("%d%d", &x, &y);*/    
        //若将两个数字输入放在此处会出现输入错误时不能退出系统,而是显示“输入两个整数”的提示
        switch (n)
        {
        case 1:
            printf("请输入两个整数!\n");
            scanf("%d%d", &x, &y);
            printf("%d\n", add(x, y));
            break;
        case 2:
            printf("请输入两个整数!\n");
            scanf("%d%d", &x, &y);
            printf("%d\n", mul(x, y));
            break;
        case 3:
            printf("请输入两个整数!\n");
            scanf("%d%d", &x, &y);
            printf("%d\n", sub(x, y));
            break;
        case 4:
            printf("请输入两个整数!\n");
            scanf("%d%d", &x, &y);
            printf("%d\n", div1(x, y));
            break;
        case 0:
            printf("退出计算器!\n");
            break;
        default:
            printf("输入错误,请重新输入!\n");
        }
    }
}

//使用函数指针数组解决计算器问题

#include<stdio.h>
#include<windows.h>
//#include<assert.h>

void menu()
{
    printf("**************************\n");
    printf("****欢迎来到计算器页面****\n");
    printf("**** 1.add    2.mul  *****\n");
    printf("*****3.sub    4.div1 *****\n");
    printf("*****0.exit          *****\n");
    printf("**************************\n");
}

int add(int x, int y)
{
    return x + y;
}

int mul(int x, int y)
{
    return x * y;
}

int sub(int x, int y)
{
    return x - y;
}

int div1(int x, int y)
{
    return x / y;
}

int main()
{
    int n = 1;
    menu();
    while (n)
    {
        printf("请输入选项:\n");
        scanf("%d", &n);
        int(*arr[5])() = { 0,add,mul,sub,div1 };//转移表
        //定义一个函数指针数组,存放函数地址
        if (n >= 0 && n < 5)
        {
            int x = 0, y = 0;
            printf("请输入两个整数:>\n");
            scanf("%d%d", &x, &y);
            printf("%d\n", (*arr[n])(x,y));//输出结果
        }
        else
        {
            printf("输入有误,请重新输入!\n");
            scanf("%d", &n);
        }
    }
    system("pause");
    return 0;
}

两种方法相比,第一种相似代码较多,比较冗余;第二种代码简洁直观,程序效率高。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现简单计算器程序

    这两天在看一个C语言写的计算器程序,做了不少的功夫,跟着作者一步步的进行完善,了解了许多细节性的东西,在此自己做个总结,加深自己对程序的印象,也算是梳理. 在该计算器程序,能进行加减乘除.sin.cos.exp等操作,同时能进行数值保存功能.而该计算器使用逆波兰表示法.即所有运算符都跟在操作数的后面,比如下列表达式: (1 - 2) * (4 + 5)采用逆波兰表示法表示为:1 2 - 4 5 + * 逆波兰表达法中不需要圆括号,只要知道每个运算符需要几个操作数就不会引起歧义. 计算器程序实现很

  • C语言实现简单计算器功能(1)

    本文为大家分享了C语言实现简单计算器功能的具体方法,供大家参考,具体内容如下 这几天一直上控制语句,在学完if.switch和循环语句后,为了巩固所学知识点,想给学生出一道简单的计算器程序.题目如下: 通过所学的知识(选择语句.循环语句)完成一个简单的计算器编程,要求不许抄袭,只能用自己所学的知识点,不可引用网上自己的不懂的程序. 要求的格式如下图: 要求以这样的一种格式进行输出,并能通过选择完成不同的功能. 如:选择1,完成整数相加功能,算完后又能回到该页面. 经过分析,我简单的写了一段代码,

  • C语言实现个税计算器

    最近在学C语言基础,在导师的指导下,先准备写个个税薪资计算器.这是一个简单的C语言小demo.主要用到了C语言的函数,if选择语句. 程序的主要代码如下(可运行): #include <stdio.h> float Salary; int len; float CulculateSalary (){ printf("请输入你的薪资\n"); scanf ("%f",&Salary); //getchar(); if(Salary -5000 &l

  • C语言运用函数指针数组实现计算器功能

    本文实例为大家分享了C语言运用函数指针数组制作计算器的具体代码,供大家参考,具体内容如下 先来回顾一下概念: 指针数组 -- 存放指针的数组 函数指针 -- 存放函数地址的指针 函数指针数组 -- 存放函数指针的数组 接下来说说这次要制作的计算器的功能: 1.add -- 加法 2.sub -- 减法 3.mul -- 乘法 4.div -- 除法 0.exit -- 退出 具体来通过代码讲解: (1)首先写一个菜单程序,在运行程序时首先打印一次菜单. void menu() { printf(

  • C语言数据结构之简易计算器

    本文实例为大家分享了C语言简易计算器的具体代码,供大家参考,具体内容如下 主要解决了处理负数.小数等的基础运算操作,无图形界面 #include <iostream> #include <stack> using namespace std; class Calculator{ private: int Priority(char fuhao); double CalSuffix(string PostfixExp); public: double Calculate(string

  • 用C语言实现计算器功能

    本文实例为大家分享了用C语言实现计算器功能的具体代码,供大家参考,具体内容如下 代码如下: #include<stdio.h> //C语言编写计算器程序 ^_^ void Counter1(int a,int b,char op); //函数声明! void Counter2(double c,double d,char op); void Show_Sum1(int a,char op,int b,int sum); void Show_Sum2(double c,double d,char

  • C语言实现简单计算器功能(2)

    本文接着上一篇C语言实现简单计算器功能(1)继续学习. 之前用switch语句完成了一个简单计算器的功能,下面我给大家用if语句和while循环语句再实现一个简单计算器的编程. 要求: 实现简单的计算器,具体代码如下: #include <stdio.h> // 头文件 void main() { char a = 0; // 变量声明并初始化 int x, y; // 变量声明 int result = 0; char b = 37; while(1) // whiel循环实现反复在计算器系

  • C语言实现简单的计算器

    本文实例为大家分享了C语言实现简单计算器的具体代码,供大家参考,具体内容如下 描述:简单的实现四则运算 1.switch法 #include<stdio.h> void menu()//菜单函数 { printf("************************************\n"); printf("***** 1.add 2.sub *****\n"); printf("***** 3.mul 4.div *****\n&quo

  • C语言实现简单计算器

    本文实例为大家分享了C语言实现简单计算器的具体代码,供大家参考,具体内容如下 实现效果如图: 实现代码如下: #include<stdio.h> #include<windows.h>//gotoxy #include<conio.h> #define width 80 #define height 30 void gotoxy(int x, int y); void GreateFrame() { int i = 0; for (i = 0 ; i < widt

  • C语言结课设计之计算器功能

    本文实例为大家分享了C语言实现计算器的具体代码,供大家参考,具体内容如下 /*===============================================*\ ** 设计目的:简单计算器,计算形如10*(20.2-30.6)+5.0/2的表达式值 ** 简要原理:中缀式转逆波兰式(后缀式) ** IDE:Dev-Cpp 4.9.9.2 ** 注意事项:括号必须是英文状态的 ** 时间: 2014-6-17 \*==================================

随机推荐