[問題] 後序運算
看板C_and_CPP (C/C++)作者seedpk5079 (fhcrc 99th ooxx)時間16年前 (2009/02/05 15:39)推噓2(2推 0噓 4→)留言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
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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章