这个C++程序怎么会是正确的呢?怎么回事?

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:55:02
#include <iostream.h>
int main()
{
int x,y;
cin>>x;
if (x >= 0)
if (x > 0)
y = 1;
else
y = 0;
else
y = -1;
cout<<y;
}
这个没有语法毛病吗?
中间那一对if else不应该用括号括起来吗?
是不是不同的编译器会有不同的结果

没毛病,就近匹配,else是跟最近的一个if匹配的,跟对所有的C++编译器都一样的。你缩进一下就好看一点。
if(x>=0)
if(x>0)
y = 1;
else
y = 0;
else
y = -1;
cout<<y;

没问题,这样就看的清楚了
if(x >= 0)
{
if(x > 0)
{
y = 1;
}
else
{
y = 0;
}
}
else
{
y = -1;
}
不过你的main()函数没有return,在某些编译器上是不允许的