習題6 7 簡單計算器 20分

2021-10-08 17:25:58 字數 1135 閱讀 7009

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。

輸入格式:

輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號」=」說明輸入結束。

輸出格式:

在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊「error」。

輸入樣例:

1+2*10-10/2=

輸出樣例:

10

這道題在我剛剛學c語言的第乙個月就碰到了,然後問了一位貼吧的老哥。當時就直接cv上去,當時也就稍微看了一下邏輯,switch case語句。四個月後的今天,我刷題又遇到了這道題,然後我嘗試著自己寫,沒通過。

主要是沒理清題目含義吧,題目要求最後輸出的時候要麼輸出error,要麼輸出結果。所以前者就是程式異常終止,需要乙個變數來表示程式非法輸出後需終止。而我這次是直接在迴圈裡面輸出error,而且還沒搞清楚while迴圈結束的條件(即 運算子為'/'且分母為0 | | 運算子為 『=』 然後while迴圈終止)

所以做乙個題,搞清楚他的邏輯和輸出的各種情況很重要。

以下是我寫的錯誤**:

#include

intmain()

result = num1 / num2; num1 = result;

break

;default

:printf

("error");

break;}

}printf

("%d"

, result)

;return0;

}

以下是最後ac**

要善於使用getchar讀取單個字元。

#include

intmain()

switch

(ch)

if(flag)

break;}

if(flag)

printf

("error");

else

printf

("%d"

, num1)

;return0;

}

習題6 7 簡單計算器(20 分)

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊 error...

習題6 7 簡單計算器 (20 分)

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入格式 輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。輸出格式 在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出...

習題6 7 簡單計算器(20 分)

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊 error...