作者seedpk5079 (fhcrc 99th ooxx)
看板C_and_CPP
标题[问题] 後序运算
时间Thu Feb 5 15:39:01 2009
这是题目网址
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
1F:推 j87b0003:你是输入什麽? 02/05 16:54
2F:→ seedpk5079:这是线上系统 只会给错误讯息... 02/05 17:52
3F:→ seedpk5079:我也不知道系统输入什麽.. 02/05 17:52
4F:推 LawlietDo:不知道可不可以 如果你的答案是0 就把它输入的算式输出 02/05 22:41
5F:→ LawlietDo:这样就知道他输入的是啥 02/05 22:41
6F:→ seedpk5079:重点是他只有给我答案... 02/08 13:06