在 csp 的考级提示中,有这么一条要求:

  • 定义变量时, 禁止使用的变量名:y1,x1 ,大家有没有思考过这是为什么呢?

详见:/csp/77.html

大家来看样例:

#include <bits/stdc++.h>
using namespace std;
 
int y1;
int main()
{
    
    return 0;
}

报错信息

image.png 编译报错,于是我把y1写成局部变量,对了;然后我再把万能头文件换掉,也对了。

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int y1;
    return 0;
}

OK,问题缩小为使用万能头文件时定义名为y1的全局变量会出现错误。

经过调试,最后发现是cmath头文件里面定义了y1