没有0反而会报3221225477的奇妙代码
查看原帖
没有0反而会报3221225477的奇妙代码
254609
miyou379楼主2022/7/18 23:37
#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

2022/7/18 23:37
加载中...