C语言,某if条件句,条件满足,却不执行,是什么原因

程序大概如下
double a,b,c,d;
//a,b,c,d均在程序执行过程中赋值
for(k=5,m=0;k>=0;k--)
{
if((a>=b)&&(c<=d))
{m++;break;}
else
continue;
}
此段程序中的if条件句在条件满足情况下,“偶尔”却不执行,是什么原因呢!!
double a,b,c,d;
//a,b,c,d均在程序执行过程中赋值

for(n=0;n<N;n++)
{//.....
for(k=5,m=0;k>=0;k--)
{
if((a>=b)&&(c<=d))
{m++;break;}
else
continue;
}
//....
}
该句异常if((a>=b)&&(c<=d)),有时运行正确有时则出现条件句不执行的情况。
问题就是出现了 执行N次,却只有最后一次不执行的情况。
注:a,b,c,d均在N的每次执行过程中,值并不相同。因程序较大未能全部列出。

是不是由于你的a,b,c,d由于都是double类型的,受存储精度的限制,在你认为可能是满足if语句的条件下其实没有满足条件,因而没有执行
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-17
问题都不全,怎么回答,都不知道你是怎样对a,b,c,d赋值的,而且
for(k=5,m=0;k>=0;k--)
这个循环里根本就没有改变a,b,c,d的值的语句,因此,只要第一次判断
if((a>=b)&&(c<=d))
不成立,那么以后肯定每次都不成立,一直到循环结束,如果你的条件不成立,则肯定一次都不执行,如果你的条件成立,则会执行6次,也就是说最后m的值为6。因此,一次都不执行if语句很正常,不七怪。
第2个回答  2010-04-23
问题都不全,怎么回答,都不知道你是怎样对a,b,c,d赋值的,而且
for(k=5,m=0;k>=0;k--)
这个循环里根本就没有改变a,b,c,d的值的语句,因此,只要第一次判断
if((a>=b)&&(c<=d))
不成立,那么以后肯定每次都不成立,一直到循环结束,如果你的条件不成立,则肯定一次都不执行,如果你的条件成立,则会执行6次,也就是说最后m的值为6。因此,一次都不执行if语句很正常,不七怪。
第3个回答  2010-04-23
“偶尔”却不执行,只有一个原因,就是没有满足条件.

请楼主仔细思考.
第4个回答  2010-04-23
你运气不好??

C语言,某if条件句,条件满足,却不执行,是什么原因
是不是由于你的a,b,c,d由于都是double类型的,受存储精度的限制,在你认为可能是满足if语句的条件下其实没有满足条件,因而没有执行

一道c语言if条件句的问题
} 因为,if(x>y)判断语句下面的if相当是嵌套在第一个if里面,而else要与和它最近的if,也就是与if(y<z),保持一直,也就是说,整个程序可以理解为:include<stdio.h> main(){ int x=1,y=2,z=3;if(x>y){ if(y<z)printf("%d",++z);else printf("%d",++y);} printf ("%d\\n...

C语言 if 表达式,可以复杂的带有&&和||的吗?
if() 的条件句是可以任意复杂的,不过一般为了书写简便,不会写很长。注意你在 for(i = 2; i <= k; i ++) 循环里规定了 i <= k,而在 if(i%i != 0 && i > k) 里又要求 i > k,所以循环内是不可能满足 if 条件的,当然没有输出。求素数的要求是不能被除自身和2之外的其它数...

C语言 if条件句
此类判断条件是可以写进去的。不过你的写法是错误的。'i*100+j*10+k'>999,左边是字符型,右边是整型,无法比较。

C语言中if语句对结果的影响
void main(){ int a=1,b=2,c=3;if (c=a)printf("%d\\n",c);else printf("%d\\n",b);return;} 输出结果为1。可以复制过去运行看下。说明if()语句中的还是有影响的。

C语言中的if(1)是什么意思啊
还有一种就是if(5),c语言默认if(判别的返回值)是0就不执行,不是0就是执行!所以if(5)等同于if(1)也就是说if(表达式结果为0(逻辑判断只返回0和1,但若是某个数值则不为0则当做是1))。所以f(0)等价于f(1<2)等价于f((1+4)<9),f(!1)等,不执行。if(1)相当if(5),if(1<2)...

C语言if条件句
就是当wheel大于500时,把它减小500 因为wheel在0到600之间。所以你的wheel>500时,500<wheel<=600.你wheel=wheel-500,就使得 0<wheel<=100了。

c语言中if的多分支条件语句中,分支最多有几个呀?
if是条件选择句,可嵌套使用,个数无限制,注意条件句成立只运行if后一条语句,另外分支句是switch,其case可以有无数条,但注意每条语句后又没加break语句的必要性。

if(!max(i))c语言是啥
第一类条件句 谈论可能发生的事情,并考虑这件事情的结果。从句(if)用一般现在时或其他现在时,表示可能发生的事情(条件)。主句用一般将来时,表示这件事情的.if 条件句遵守主将从现的原则。if it is fine tomorrow ,we will go out 。如果明天天气好,我们就出去。虚拟语气表示相反。表示和现在相反...

在C语言中,if条件句中怎么判断关系表达式和逻辑表达式?
== != 等于,不等于 由左向右 & 按位与 由左向右 ^ 按位异或 由左向右 | 按位或 由左向右 && 逻辑与

相似回答