永发信息网

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

答案:5  悬赏:70  手机版
解决时间 2021-04-05 19:47
  • 提问者网友:流星是天使的眼泪
  • 2021-04-05 06:08
程序大概如下
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{//.....
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的每次执行过程中,值并不相同。因程序较大未能全部列出。
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-04-05 06:16
是不是由于你的a,b,c,d由于都是double类型的,受存储精度的限制,在你认为可能是满足if语句的条件下其实没有满足条件,因而没有执行
全部回答
  • 1楼网友:野味小生
  • 2021-04-05 09:02
你运气不好??
  • 2楼网友:鱼芗
  • 2021-04-05 08:47

在printf上面加上

if(a<0)

  a += 360;

  • 3楼网友:老鼠爱大米
  • 2021-04-05 07:26
“偶尔”却不执行,只有一个原因,就是没有满足条件. 请楼主仔细思考.
  • 4楼网友:深街酒徒
  • 2021-04-05 06:36
问题都不全,怎么回答,都不知道你是怎样对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语句很正常,不七怪。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯