scanf("%c",ch)的返回值是读取到的数据的个数,肯定要返回int类型。int类型和char类型,肯定不相等,所以scanf("%c",&ch)!='@'一直为true,所以会死循环咯
附上ACcode:
```cpp
#include <bits/stdc++.h>
using namespace std;
int s[1001],len=0;
void readint(){
int tmp=0;
while (1){
char c;
c=getchar();
if (c=='@') return;
if ((c>='0')&&(c<='9')){tmp*=10; tmp+=c-48; continue;}
if (c=='.'){len++;s[len]=tmp;tmp=0;continue;}
if (c=='+'){s[len-1]+=s[len];len--;s[len+1]=0;continue;}
if (c=='*'){s[len-1]*=s[len];len--;s[len+1]=0;continue;}
if (c=='-'){s[len-1]-=s[len];len--;s[len+1]=0;continue;}
if (c=='/'){s[len-1]/=s[len];len--;s[len+1]=0;continue;}
}
}
int main(){
readint();
cout<<s[1]<<endl;
return 0;
}
```
~~恕我吐槽一下,都综应班了还问c++语言问题~~
by Altria_Pendragon_ @ 2017-12-08 12:31:45