題目描述:
讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
輸入:
測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
輸出:
對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
樣例輸入:
1 + 2
4 + 2 * 5 - 7 / 11
0 樣例輸出:
3.00
13.36
//先用自己想到的思路寫了如下一堆,有點囉嗦和繁雜。
//看到網上其他人寫的簡介的**,希望自己之後能學習和優化。
//加減乘除的功能實現了,但是輸出是整形的,不符合題目中要求的保留兩位小數。
#include
#include
#include
#include
using
namespace
std;
string delspace(string temp)
return temp;
};int main()
; vector
::iterator it;
for (it = input.begin(); it != input.end(); it++)
}//cout << temp << endl;
len = temp.size();
for (int i = 0; i < len; i++)
}if (temp[0]>57)
else
cout
<< temp<< endl;
}return
0;}
char型和int型相互轉換:
一、將0到9之間的數字轉化為char型別的,或是將』0』-『9』之間的字元轉化為int型的數字。
用強制轉換的話可以這樣:(0的ascii碼是48)
int a;
char b;
a=(int)(b-48);或b=(char)(a+48);
//這樣轉化的前提是a的範圍是0-9,b的範圍是『0』-『9』
別人家的**總是辣麼好看。。。。
#include "stdio.h"
#include "string.h"
#define max 1001
double
stack[max];
int tail;
int main()else
if(ch1=='-')else
if(ch1=='*')else
if(ch1=='/')
if(ch2!=' ')
break;
} //2.把棧裡頭的東西全部加起來,求和
double result=0;
for(int i=1;i<=tail;i++)
result+=stack[i];
printf("%.2lf\n",result);
} return
1;
}
簡單計算器的實現
計算器 問題描述 輸入乙個簡單四則運算表示式字串,計算該表示式的值 注 1 表示式只含 四則運算符 2 表示式數值只包含整數 0 9 每個運算元可以是多位,且不會出現0作為除數的情況 3 要考慮加減乘除按通常四則運算規定的計算優先順序 4 除法用整數除法,即僅保留除法運算結果的整數部分。比如80 3...
簡單計算器的實現
計算器 問題描寫敘述 輸入乙個簡單四則運算表示式字串,計算該表示式的值 注 1 表示式僅僅含 四則運算符 2 表示式數值僅僅包括整數 0 9 每乙個運算元能夠是多位。且不會出現0作為除數的情況 3 要考慮加減乘除按通常四則運算規定的計算優先順序 4 除法用整數除法,即僅保留除法運算結果的整數部分。比...
C 實現簡單計算器
要求 輸入乙個包含 的非負整數計算表示式,計算表示式的值,每個字元之間需有乙個空格,若一行輸入為0,則退出程式。輸入樣例 4 2 5 7 11 輸出樣例 13.36 實現 include include using namespace std char str 200 儲存表示式字串 int mat...