C語言程序設計:模擬簡單運算器的工作
1.題目
模擬簡單運算器的工作,輸入一個算式(沒有空格),遇等號"="說明輸入 結束,輸出結果。假設計算器只能進行加、減、乘、除運算,運算數和結果都是整數,4 種運算符的優先級相同,按從左到右的順序計算。例如,輸入 1+2*10-10/2=后,輸出10。試編寫相應程序。其中的運算部分要求定義函數實現。
2.分析
1).首先他要求我們是輸入一個算式,格式為:【1+2/3*4-5=】 ,輸入輸出結果都為整數
2).計算結果為 -1 ,忽略運算符的優先級,從左往右進行計算
3).算式中含有【=】才說明輸入結束,否則可以一直輸入
3.代碼實現
void calculate()
{
while (1) {
char ch;
int a, sum;
a = sum = 0;
int b = 1;
scanf_s("%d", &a);
sum = a;
while (1) {
ch = getchar();
if (ch == '=') {
printf("result = %d\n", sum);
b = 0;
break;
}
scanf_s("%d", &a);
switch (ch) {
case '+':sum += a; break;
case '-':sum -= a; break;
case '*':sum *= a; break;
case '/':
if (a == 0) {
printf("error\n");
b == 0;
}
else sum /= a;
; break;
default:
b = 0;
printf("may be you should input =\n"); break;
}
if (b == 0) break;
}
}
return 0;
}
int main()
{
calculate();
return 0;
}
4.結尾
此代碼有BUG,輸入錯誤之后得第一次運行結果是會出錯的,第一次接觸C語言,不知道如何寫,歡迎大佬指正。。。