時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:8387
解決:3065
題目描述:讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
輸入:測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
輸出:對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
樣例輸入:
1 + 24 + 2 * 5 - 7 / 11
0
樣例輸出:
3.0013.36
#include "stdafx.h"
#include using namespace std;
char str[220];
int mat[5]=;
stackop;
stackin;
void getop(bool &reto,int &retn,int &i)
if(str[i]==0)
if(str[i]>='0'&&str[i]<='9')
else//運算子
retn=0;//計算數字
for(;str[i]!=' '&&str[i]!=0;i++)
if(str[i]==' ')i++;return;//i遞增+1;
}int main()
op.push(retnum);}}
if(op.size()==2&&op.top()==0) break;
} printf("%.2lf\n",in.top()); }
return 0;
}
引用的作用是給乙個變數起乙個別名,例如有乙個變數a,想給他起乙個別名b,可以寫成:int a; int &b=a;
這樣宣告後,代表a和b就是同一變數單元,而&不是代表取位址符號,而是引用宣告符,說明定義了b可並沒有為它另開闢記憶體單元,b和a就是同一變數。
在宣告乙個引用型變數時,必須同時為它初始化,即宣告它代表哪乙個變數,在宣告乙個變數的引用後,在本函式執行期間,該引用一直與其代表的變數相聯絡,不能再作為其他變數的別名。下面舉個不對的例子:
int a;
int b;
int &c=a;int &c=b;
這樣企圖讓c既是a又是b的別名是不對的。
引用的出現主要是把它作為函式引數,以擴充函式傳遞資料的功能。用傳遞變數別名的方法實現函式傳遞資料。下面舉個例子:
#include "iostream.h"
void swap(int &a,int &b)
void main()
if(str[i]==0)
if(str[i]>='0'&&str[i]<='9')
else//運算子
retn=0;//計算數字
for(;str[i]>='1 '&&str[i]!=0;i++)
if(str[i]==' ')i++;return;//i遞增+1;
}
九度OJ 題目1019 簡單計算器
題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...
九度OJ 題目1019 簡單計算器
題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...
題目1019 簡單計算器
題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...