九度 題目1019 簡單計算器

2021-07-25 22:00:35 字數 1670 閱讀 5097

時間限制:1 秒

記憶體限制:32 兆

特殊判題:否

提交:8387

解決:3065

題目描述:讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。

輸入:測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。

輸出:對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。

樣例輸入:

1 + 2

4 + 2 * 5 - 7 / 11

0

樣例輸出:

3.00

13.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位...