zoukankan      html  css  js  c++  java
  • 习题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;
    }
  • 相关阅读:
    USACO3.4.3Electric Fence
    (转)《算法艺术与信息学竞赛》题目 提交方式对照表
    UVA10382 Watering
    SGU104 Little shop of flowers
    UVA10673 Play with Floor and Ceil
    SGU123 The sum
    SGU106 The equation
    SGU105 Div 3
    UVA10905 Children's Game
    SGU101 200分类
  • 原文地址:https://www.cnblogs.com/2228212230qq/p/9301619.html
Copyright © 2011-2022 走看看