【发布时间】:2014-09-02 15:20:23
【问题描述】:
今天我正在尝试使用 C 解决一个简单的二维数学函数。但是我得到的结果在那里有点有趣。代码在这里:
int main()
{
int x, y;
x = 10 - y;
y = x - 2;
printf("the x and y would be %d, %d ", x, y);
return 0;
}
如您所见,答案很容易计算为x=6 和y=4,但上面列出的程序给了我x=8 和y=6。似乎程序以某种方式首先将y 的值设为6,然后忽略第一个等式并直接将6 放入第二个等式中,然后得到x 的值。看到这个有点搞笑。希望有人能给我解释一下原因!
【问题讨论】:
-
您的代码有未定义的行为:
y没有价值! -
在
x=行中缺少;。 -
@KerrekSB 但是怎么做?我认为我对 x 和 y 做了同样的事情......
-
@xxbbcc 哦,我忘了。但我不认为这就是问题所在
-
@user1579701:在
x = 10 - y;行中,你试图给x一个值,但你失败了,因为这样做你试图评估表达式10 - y,其中@ 987654336@ 没有价值。这意味着您的程序有未定义的行为,因此不能说什么。
标签: c algorithm variables math