棧的應用 計算器 加,減,乘,除,括號

2021-09-14 04:58:09 字數 960 閱讀 4608

最初接觸此類的題目,是只涉及到的加減乘除四則運算,沒有符號的操作,因為在一次筆試中遇到了有括號的情況,抱著遇到問題一定要去解決的態度,筆試結束後嘗試將這道題目進行還原。

這裡的思想主要是用到了棧,分為兩個棧,乙個棧存放數字,另外乙個棧存放運算子和括號

#include #include using namespace std;

char str[200];

int mat[5]=;

stackin;

stackop;

void getop(bool &reto,int &retn,int &i)

if(str[i]==0)

if(str[i]>='0'&&str[i]<='9')

return ;

} else

else if(str[i]=='-')

else if(str[i]=='*')

else if(str[i]=='/')

else if(str[i]=='(')

else if(str[i]==')')

i++;

return ; }}

int main()

else

else if(retnum<=4&&mat[retnum][op.top()]==0)

}in.push(tmp);

}op.push(retnum);

if(flag)

}else if(retnum==6)

}in.push(tmp);

}op.pop();}}

if(op.size()==2&&op.top()==0) break;

} if(flag==false)

printf("%.0f\n",in.top());

else

break;

} return 0;

}

加減乘除 計算器

二 程式效果說明 程式的很多bug已解決,但還是有一些bug沒有發現,或沒有解決 已發現的bug 1 如果計算過程出現科學計數法 乙個特別小的數除以乙個特別大的數時 就會使程式出錯,進入無限迴圈 2 如果不指定計算資料小數點後的有效位數,程式也會進入死迴圈 下圖是程式計算結果與python計算結果的...

MFC 實現 加減乘除,括號,乘方的 計算器

mfc 實現 可加減乘除,括號,乘方 以及進製轉換的 計算器 一 帶括號的四則運算以及乘方運算 輸入的字串為中綴表示式,我們對表示式進行求值,則首先要解決的問題即為運算優先順序,然後再進行求值,通俗的說就是我先根據計算優先順序確定好表示式計算的順序,然後我在根據這個順序一步一步進行計算。那麼,首先,...

shell指令碼實現加減乘除計算器

使用if語句 bin bash 這是乙個計算器 read t 30 p please input the first number num1 read t 30 p please input the second number num2 read t 30 p please input the se...