使用clion定义全局变量max,min时,程序报错,而改为x,y可以正常运行。
以下是出错的代码:
#include <iostream>
using namespace std;
int min,max;
void most(int,int,int,int);
int main(){
int a,b,c,d;
cout<<"请输入四个整数"<<'\n';
cin>>a>>b>>c>>d;
most(a,b,c,d);
cout<<"最大值为"<<max<<'\n';
cout<<"最小值为"<<min<<'\n';
}
void most(int a,int b,int c,int d){
int t1,t2;
t1=a;
t2=a;
if(t1<b) t1=b;
if(t1<c) t1=c;
if(t1<d) t1=d;
if(t2>b) t2=b;
if(t2>c) t2=c;
if(t2>d) t2=d;
min=t2;
max=t1;
}
将max,min定义为局部变量时却可以正常运行。
比如:
#include <iostream>
using namespace std;
int main(){
int max;
cin>>max;
cout<<max<<'\n';
}
用codeblock编译得到了同样的结果。
猜测与全局变量的特性有关,但不知具体是什么原因。
感谢!