#include <bits/stdc++.h>
using namespace std;
stack<int> s;
char h[13] = {};
int flag = 0;
int lgth;
int main() {
scanf("%s", &h);
lgth = strlen(h);
if (h[0] == '-') {
flag = 1;
for (int j = 1; j <= lgth - 1; j++)
s.push(h[j]);
lgth -= 1;
printf("-");
} else {
for (int m = 0; m <= lgth - 1; m++)
s.push(h[m]);
}
if (s.top() != '0') {
printf("%c", s.top());
s.pop();
} else {
s.pop();
lgth -= 1;
}
for (int p = 1; p <= lgth; p++) {
printf("%c", s.top());
s.pop();
}
return 0;
}
如题,输入数据为-980时能够正常运行,答案正确,若输入-98则会返回3221225477.不带负号的情况是一样的,个人感觉是输出注释下面那个if有问题,请求各位神犇帮助
提交界面5个AC 3个WA 3个RE