• 习题6-7 简单计算器(20 分)


    模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

    输入格式:

    输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。

    输出格式:

    在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

    输入样例:

    1+2*10-10/2=
    

    输出样例:

    10
    
    #include <stdio.h>
    
    int main()
    
    {
        int i,sum,is=0;
        char op='0';//运算符初始值为'0' 
        scanf("%d",&sum);
        while(op!='=')
        {
            scanf("%c",&op);
            if(op=='=')
                break;
            scanf("%d",&i);
            if(op=='+')
                sum=sum+i;//题目要求不考虑计算优先级,可以直接从左到右顺序计算 
            else if(op=='-')//所以可以依次判断运算符,将新输入变量加到原来的结果上 
                sum=sum-i;
            else if(op=='*')
                sum=sum*i;
            else if(op=='/')
            {//判断除法除数是否合法 
                if(i!=0)//判断不为零的情况,而不是判断为零的情况 
                    sum=sum/i;
                else
                    //printf("ERROR");
                    is=1;//设置判断点,输出时判断后输出 
            }
            else
                is=1;//输入除了+ —* / 之外的符号,视为非法错误输入 
            //printf("ERROR");
        }
        if(is==1)
            printf("ERROR");
        else
            printf("%d
    ",sum);    
        return 0;
    }
  • 相关阅读:
    算法之【仿竖式算法】
    算法之【大整数乘法】
    EIGRP系统复习【转载】
    算法之【插入排序法】
    算法之【折半插入法】
    ★10 个实用技巧,让Finder带你飞~
    ★宣传广告变成社会标准
    ★路由递归查询方法及相关图…
    自制tunnel口建虚拟专网实验
    【★】路由环路大总结!
  • 原文地址:https://www.cnblogs.com/2228212230qq/p/9301619.html
Copyright © 2020-2023  润新知