1. 程式人生 > >杭電ACM1237——簡單計算器

杭電ACM1237——簡單計算器

簡單的表示式求值,A了好久,坑。

AC的程式碼:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack>
using namespace std;

int main()
{
	char str, c;
	double a, b;
	stack <double> num;
	while(scanf("%lf", &a) != EOF)
	{
		while(!num.empty())
			num.pop();
		c = getchar();
		if(c == '\n' && a == 0)
			break;
		num.push(a);
		scanf("%c", &c);
		while(scanf("%lf", &b))
		{
			if(c == '*')                //優先順序高,取數,計算
			{
				a = num.top();
				num.pop();
				num.push(a * b);
			}
			else if(c == '/')           //同上
			{
				a = num.top();
				num.pop();
				num.push(a / b);
			}
			else if(c == '+')           //優先順序低,先存入棧
				num.push(b);
			else if(c == '-')          //減法變成加上那個數的負
				num.push(-b);
			c = getchar();
			if(c == '\n')               //結尾
				break;
			scanf("%c", &c);
			getchar();
		}
		double ans = 0.0;
		while(!num.empty())
		{
			ans += num.top();
			num.pop();
		}
		printf("%.2lf\n", ans);
	}
	return 0;
}


相關推薦

ACM1237——簡單計算器

簡單的表示式求值,A了好久,坑。 AC的程式碼: #include <iostream> #include <cstdio> #include <cstring>

OJ——簡單計算器

簡單計算器 Problem Description 讀入一個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。 Input 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用一個空格分隔。沒有非法表示式。當一行中只

試題簡單分類

1001這個就不用說了吧 1002簡單的大數 1003DP經典問題,最大連續子段和 1004簡單題 1005找規律(迴圈點) 1006感覺有點BT的題,我到現在還沒過 1007經典問題,最近點對問題,用分治 1008簡單題 1009貪心 1010搜尋題,剪枝很關鍵 1011 1012簡單題 1013簡單題(有

sincerit-oj 1237 簡單計算器

1237 簡單計算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26856 Accepted Submission(s): 9

acm—1237 簡單計算器

簡單計算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub

2018多校第六場(2018 Multi-University Training Contest 6) 1012.Pinball(HDU 6373) -簡單的計算幾何+物理受力分析

info 簡單的 垂直 -- vector 分析 code space cti 6373.Pinball 物理受力分析題目。 畫的有點醜,通過受力分析,先求出θ角,為arctan(b/a),就是atan(b/a),然後將重力加速度分解為垂直斜面的和平行斜面的,垂直

[VJ][簡單背包]飯卡

mes 基礎上 string -a 都是 isp max hide 分享 飯卡 Description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷余額。如果購買一個商品之前,卡上的剩余金額大於或等於5元,就一定可以購買成功(即使購買後卡上余額為負),否則無法

HDOJ,數論簡單入門題目,1262,尋找素數對

這個查結果的思想比較精妙吧。。。。 /***** HDOJ 1262 尋找素數對 ********/ /******** written by C_Shit_Hu ************/ /************************************

排名(oj1236)(簡單排序)

排名 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16134    Accepted Submission

acm 1084 What Is Your Grade? 比較考人的簡單

#include <iostream> #include <cstdio> #include <algorithm> #include <cstring>

OJ——2046 骨牌鋪方格(簡單的推斷題)

骨牌鋪方格 Problem Description 在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數. 例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖: Input 輸入資料由多行組成,每行包含一個整數n,表示該

java最簡單的並查集(不想交集合)以及1272

並查集要有的一些屬性:value:表示當前值,指標:(不一定是指標)指向父節點。 還有一個屬性number:表示該樹存在的總個數。(也可以用深度表示)。我用小樹插在大樹上。 如果是普通數字表示的樹,可

oj1089 最簡單的加法

#include <iostream> using namespace std; int main() { int a,b; int c=0; while(cin

1004(簡單題)

Problem Description Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges’ f

簡單的漢諾塔 簡單的遞迴(oj2064 2077)

約19世紀末,在歐州的商店中出售一種智力玩具,在一塊銅板上有三根杆,最左邊的杆上自上而下、由小到大順序串著由64個圓盤構成的塔。目的是將最左邊杆上的盤全部移到右邊的杆上,條件是一次只能移動一個盤,且不允許大盤放在小盤的上面。 現在我們改變遊戲的玩法,不允許直接從最左(右)邊移到最右(左)邊(每次移動一定是

1170

簡單 == while tail pan 分代 out set 初始 就是個簡單的if else判斷功能的水題目 思路 :就是讀取、計算、利用判斷語句 難點:我在做的時候判斷是否是浮點小數那邊出了點問題,因為我初始設置是double 所以輸出的時候我強制類型轉化為int 這

2018母牛的故事

處理 代碼 [1] out ++ program clas desc col program description 有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛? input 輸入數據

1024----Max Sum Plus Plus

int oid max art main 杭電 sca ava 最大 1 /* 2 這題還沒有理解透徹。某個dalao也不寫註釋。只能自己理解了。。。 3 先求為i個元素(1<=i<=M)為一個區間的最大和,保證元素個數大於等於i個,遞推到M個即可 4

2016數列有序

break col iostream ios 空格 討論 pan include span #include<iostream>using namespace std;int main(){   int n,m,t = 0;   int a[110], b[11

2629 Identity Card

input 比較 題目 開始 ret targe str 部分 還要   題目意思很簡單,就是根據身份證號碼來確定一個人的籍貫和生日,(然而我開始腦子抽了還以為還要根據奇數偶數判斷男女233333)。   然後我的暴力ac代碼:    1 #include <io