線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1519
推到 Plurk!
推到 Facebook!

C++題目求解

尚未結案
good321
一般會員


發表:6
回覆:6
積分:2
註冊:2006-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-07 23:41:57 IP:1.168.xxx.xxx 訂閱
請各位大大幫幫忙 這題目要怎寫

可以的話,也幫我解釋一下過程

謝謝喔!!

以下我的程式碼和題目

有一運算式,其運算規則為(運算子,運算元,運算元)。例如(*,3,5)表示3*5,結果等於
15。運算子可為 ,-,*,/,運算元則是一個正或負整數,若有多重括弧,則以內部括弧先處
理。請設計一個程式可以從資料檔a.txt 讀入一個運算式,並輸出結果。
範例輸入:
((3,5,*),((2,4,*),6,-), )
範例輸出:
((3,5,*),((2,4,*),6,-), )
Ans=17

[code cpp]
#include
#include
using namespace std;

void main()
{
ifstream data("a.txt");
char str[100];
data.getline(str,100,'\n');
cout< int num[100];
int len=strlen(str)-1;
int i=0;
while(len!=0)
{
if((str[len]>='0' && str[len]<='9') && (str[len-1]<'0' || str[len-1]>'9'))
{
if(str[len-1]=='-')
len--;
num[i]=atoi(str len);
i ;
if(str[len]=='-')
len--;
}
if(str[len]==' ' || str[len]=='-' || str[len]=='*' || str[len]=='/')
{
if(str[len]==' ')
num[i-2]=num[i-1] num[i-2];
else if(str[len]=='-')
num[i-2]=num[i-1]-num[i-2];
else if(str[len]=='*')
num[i-2]=num[i-1]*num[i-2];
else if(str[len]=='/')
num[i-2]=num[i-1]/num[i-2];
i--;
}
len--;
}
cout<<"Ans="<}

[/code]

麻煩各位高手幫幫!!


感激不盡!!!!

編輯記錄
good321 重新編輯於 2011-03-07 09:03:46, 註解 無‧
frog1
一般會員


發表:25
回覆:40
積分:18
註冊:2007-01-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-04-13 12:03:34 IP:219.80.xxx.xxx 訂閱
因不知會有幾層, 我建議先做數字的解析, (下為數字的先做,所得的數取帶原有的(A,B,*), 放回原字串中
就這樣一層層的剝, 程式如何寫, 就自己努力了
系統時間:2024-04-26 13:17:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!