[問題] 後序運算

看板C_and_CPP (C/C++)作者 (fhcrc 99th ooxx)時間16年前 (2009/02/05 15:39), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/2 (看更多)
這是題目網址http://0rz.tw/934oK 以下是我寫的程式 卡在一個測資 答案是70 系統說我輸出0 想問問有沒有人能抓錯... 謝謝囉 #include<stdio.h> char d[10000]={},number[100]={}; int main() { int i,j=0,s=0,ans; while( gets(d)!=NULL){ int stack[1000]={},top=0; for(i=0;d[i]!='\0';++i){ int x=0; switch(d[i]){ case '+': stack[top-1]=stack[top-1]+stack[top];stack[top]=0;top--;break; case '-': stack[top-1]=stack[top-1]-stack[top];stack[top]=0;top--;break; case '*': stack[top-1]=stack[top-1]*stack[top];stack[top]=0;top--;break; case '/': stack[top-1]=stack[top-1]/stack[top];stack[top]=0;top--;break; case '%': stack[top-1]=stack[top-1]%stack[top];stack[top]=0;top--;break; case ' ': switch(d[i-1],d[i+1]){ /*排除運算符號前後的空白*/ case '+':break; case '-':break; case '*':break; case '/':break; case '%':break; default: top++;break; }break; default: stack[top]=stack[top]*10+(d[i]-'0');break; /*因為是一直加 所以要運算完就歸0 不然會用到之前的數*/ } } printf("%d\n",stack[top]); j=0; i=0; } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.60.161.254

02/05 16:54, , 1F
你是輸入什麼?
02/05 16:54, 1F

02/05 17:52, , 2F
這是線上系統 只會給錯誤訊息...
02/05 17:52, 2F

02/05 17:52, , 3F
我也不知道系統輸入什麼..
02/05 17:52, 3F

02/05 22:41, , 4F
不知道可不可以 如果你的答案是0 就把它輸入的算式輸出
02/05 22:41, 4F

02/05 22:41, , 5F
這樣就知道他輸入的是啥
02/05 22:41, 5F

02/08 13:06, , 6F
重點是他只有給我答案...
02/08 13:06, 6F
文章代碼(AID): #19YfUM74 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19YfUM74 (C_and_CPP)