坑:abs

abs

A1088遇到了一个坑。我使用绝对值函数:abs完成对Long long的取绝对值。查看了cplusplus上abs的介绍
在这里插入图片描述
发现可以使用。就开开心心的用。但是却不能AC。QAQ

解决

经过很长时间的查询资料和检查错误:我发现错误在abs上。
abs在C上是没有重载的,只有在C++上才有。所以

#include<cstdlib>
int main()
{
	long long a = -5;
	abs(a);      //使用的是C的abs,int abs(int)
}
#include<cstdlib>
using namespace std;
int main()
{
	long long a = -5;   //使用using namespace std或std都行。
	std::abs(a);      //使用的是C++的abs
}

我的错误是又没写using namespace std,又没写std::abs,所以使用的C版本的abs,也就才到坑了。

用labs或llabs也行。

猜你喜欢

转载自blog.csdn.net/weixin_41256413/article/details/84566007
ABS