用C语言对'if语句'进行多次检查但不起作用

时间:2013-05-02 14:35:04

标签: c

我的代码是这样的。

int L=25;
float x;

x的值由长计算分配

if(x<=L)
   x=x-L;

但是当x = L时,它没有改变值。

我也试过

if(x>L || x==L)

即使在这种情况下,x的值也不会因x = L而改变。

请帮忙

2 个答案:

答案 0 :(得分:2)

要么x稍微大于25,你就会被软件认为它完全没有正确地显示整个值或者正在执行的代码并且所使用的值与你拥有的值不同显示在这个问题中。

答案 1 :(得分:-2)

编辑:与我最初的观点以及其他一些观点相反,问题与比较不同的类型无关。根据评论,似乎在那里和免费(http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf)的最新C标准清楚地表明,比较将强制进行类型转换,通常朝向更高精度类型。

除此之外,在我个人看来,将这些转换显式化仍然更明智,因为当您扫描代码时会发生什么变得清晰。这里的问题可能是另一个回答者强调的问题。

问题很可能出在你的打字上。最好是明确的:

int L=25;
float x;
// Value to x is allotted by long calculation

if (x <= ((float)L)) {
    x = x - ((float)L);
}

<击>