簡單計算器的實現

2021-08-15 03:32:35 字數 1654 閱讀 1822

題目描述:

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

輸入:

測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過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...