hzy1721 @ 2021-05-07 22:12:51
本地是可以过样例的,但是提交后样例都过不了,是scanf的问题吗?
#include <cstdio>
#include <stack>
using namespace std;
stack<long long> S;
int main()
{
long long num;
char op;
while (true) {
if (scanf("%lld.", &num) == 1) {
// printf("num: %lld\n", num);
S.push(num);
} else if (scanf("%c", &op) == 1) {
// printf("op: %c\n", op);
if (op == '@')
break;
if (op != '+' && op != '-' && op != '*' && op != '/')
continue;
long long n1, n2, res;
n2 = S.top();
S.pop();
n1 = S.top();
S.pop();
if (op == '+')
res = n1 + n2;
else if (op == '-')
res = n1 - n2;
else if (op == '*')
res = n1 * n2;
else if (op == '/')
res = n1 / n2;
S.push(res);
}
}
printf("%lld\n", S.top());
return 0;
}
by FunnyCreatress @ 2021-05-07 22:19:02
%c是个玄学的东西,不要用吧
by JJA_ @ 2021-05-07 22:21:19
@hzy1721 ch字符用cin比较好,%c
过于玄学(也可能是我不会用?(
by Masna_Kimoyo @ 2021-05-07 22:31:21
%c玄学石锤了
与其差不多的还有puts,getline,getchar之类的东西
反正都很玄学,所以cin,cout是最好的
by 约瑟夫用脑玩 @ 2021-05-07 22:38:53
长期使用 fread 版 getchar 的人打出了问号???
楼上的怕是没遭受过毒瘤的毒打,建议直接用 getchar,基本不出锅,最多难写一点
by hzy1721 @ 2021-05-07 22:39:21
改成getchar通过了,谢谢各位大佬
by Masna_Kimoyo @ 2021-05-07 22:41:51
@约瑟夫用脑玩 对不起对不起,冒犯了
不过我不是那个意思
我用getchar也用的比较多,就是有的时候读入字符容易莫名挂,所以这么说。
只是建议萌新少用,cin,cout更友好一些/kk
by 约瑟夫用脑玩 @ 2021-05-07 22:52:14
没说什么,也只是建议用 getchar 而已。。。
@kevin320