習題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\n",sum);    
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM