1. 程式人生 > >C - 簡單計算器

C - 簡單計算器

sum break std 解法 測試 print 計算器 空格 +=

題目:

讀入一個只包含 +, -, *, / 的非負整數計算表達式,計算該表達式的值。

Input測試輸入包含若幹測試用例,每個測試用例占一行,每行不超過200個字符,整數和運算符之間用一個空格分隔。沒有非法表達式。當一行中只有0時輸入結束,相應的結果不要輸出。
Output對每個測試用例輸出1行,即該表達式的值,精確到小數點後2位。
Sample Input

1 + 2
4 + 2 * 5 - 7 / 11
0

Sample Output

3.00
13.36

解法1:
邊讀取數據邊判斷左邊的符號,乘除直接計算,加法儲存到下一位,減法加負號儲存到下一位;
 1 #include <iostream>
 2
#include <stdio.h> 3 4 using namespace std; 5 6 7 8 int main() 9 { 10 char fu; 11 double temp; 12 double sum; 13 while(1) 14 { 15 sum = 0; 16 double a[200]; 17 int i = 0; 18 cin>>temp; 19 fu = getchar(); 20 if(temp == 0
&&fu == \n) break; 21 else if (fu == \n) printf("%.2lf\n",temp); 22 else 23 { 24 a[0] = temp; 25 while(cin>>fu>>temp) 26 { 27 if( fu == *) 28 a[i] *= temp; 29 if( fu ==
/) 30 a[i] /= temp; 31 if( fu == +) 32 a[++i] = temp; 33 if( fu == -) 34 a[++i] = -temp; 35 if( getchar() == \n) 36 break; 37 } 38 39 for(int t = 0;t <= i;t ++) 40 sum += a[t]; 41 printf("%.2lf\n",sum); 42 43 } 44 } 45 46 return 0; 47 }

C - 簡單計算器