标题: 求助C语言if语句及else的运用是否合理? [打印本页]

作者: LWB2005_2    时间: 2021-8-27 16:05
标题: 求助C语言if语句及else的运用是否合理?
if(h>=v4)
{
if((h-v4)>=3)
v4=v4;
else
v4=h;
}
else
if((v4-h)>=3)
v4=v4;
else
v4=h;
这是一段将一个数h与另一个数V4进行比较,当h的值超过V4的值±3时都不要。这里我想问一下各位高手我的if语句及else的运用是否合理。
作者: csmyldl    时间: 2021-8-27 19:44
显然不合理,如果h这个值既不大于也不小于时没有作任何处理
作者: Hephaestus    时间: 2021-8-27 19:50
倒数第二个else后面缺了花括号包住后面所有语句,导致该else变成了else if,最后一个else对应第一行的那个if。
作者: LWB2005_2    时间: 2021-8-28 10:36
谢谢两位的指点
作者: qyqx01    时间: 2021-8-28 10:43
if ((h < v4 - 3) || (h > v4 + 3))
    h = v4;
作者: 压着我头发啦    时间: 2021-8-28 11:07
Hephaestus 发表于 2021-8-27 19:50
倒数第二个else后面缺了花括号包住后面所有语句,导致该else变成了else if,最后一个else对应第一行的那个i ...

if(h>=v4)
{
if((h-v4)>=3)
v4=v4;
else
v4=h;
}
else
{
if((v4-h)>=3)
v4=v4;
}
else
v4=h;
作者: univers    时间: 2021-8-28 11:35
看起来贼变扭呀。。。。。。。。。。
作者: DAMLE    时间: 2021-8-28 13:40
if ((h < v4 - 3) || (h > v4 + 3))
     v4= h;

作者: 188610329    时间: 2021-8-28 14:21
本帖最后由 188610329 于 2021-8-28 16:11 编辑
压着我头发啦 发表于 2021-8-28 11:07
if(h>=v4)
{
if((h-v4)>=3)

按你的内容,整理逻辑后,
大概是这个意思: h 比 v4 +3 小 或者 h 比 v4 - 3 大  则  v4 = h, 否则 v4 不变,
那么,其实,应该就是这么一行代码。

if ((h > v4 - 3) || (h < v4 + 3))      v4 = h;

另外 你最后那个 } 位置不对, 应该在 v4 = h; 之后, 不然 最后那个 else 没有if 配对了。
作者: sustlixin    时间: 2021-8-30 09:46
我的理解:
如果你的是判定一个数 h 是不是在 V4 的±3之内,即 V4的公差为±3,如没超公差就保留,超了就不要了
那么程序中只要加这个即可:
if ( (h < v4 + 3) &&(h > v4 - 3))     
      v4 = h;
作者: wojiaoguogai    时间: 2021-8-30 18:22
给你格式化了下,你自己分析
if (h >= v4)
{
    if ((h - v4) >= 3)
        v4 = v4;
    else
        v4 = h;
}
else if ((v4 - h) >= 3)
    v4 = v4;
else
    v4 = h;
作者: cheney03    时间: 2021-8-31 08:54
楼主先理清一下else if 的关系,else是与最近的if 成对的
作者: 2976726856    时间: 2021-8-31 10:25
除了第一个if对应的else,语法没错误,就是有点麻烦
作者: 2976726856    时间: 2021-8-31 10:26
v4=v4没必要写
作者: AUG    时间: 2021-8-31 10:56
if ( (h < v4 + 3) &&(h > v4 - 3))     
      v4 = h;
如果你是初学,那么你可以一条条的列下来捋顺逻辑,但是你的最后一定要慢慢变成上述这个一条语句就可以解决的样子。这样才能慢慢进步。
作者: dwb123    时间: 2021-8-31 12:08
本帖最后由 dwb123 于 2021-8-31 12:12 编辑

这波完全就是全集了,没有用的
作者: 时间苍白了誓言    时间: 2021-8-31 18:29
显然不合理的,第一个if判断只包含了第二个i判断f,没有包含第三if判断
作者: isyido    时间: 2021-8-31 18:39
大家乐意帮助新手,但是,网络真的拉低了人们自己追求解决问题的动力,这种问题都要发个帖问下……
作者: HAPPY3    时间: 2022-1-5 15:05
这个我也不会,最好笑是问电子技术的,这么简单也问,编出的程序有用?但一细想,自己会才偷笑,不要怪人
作者: 天ノ忆    时间: 2022-1-5 18:00
本来也想写一个程序,写完括号想了想,这么简单我还浪费时间?
这种问题你自己运行一下就知道了,连这点问题都不愿意花时间调试,或许该考虑放弃了
作者: 13205495918    时间: 2022-1-6 08:22
你这个写法相当别扭,else会与上面第一个显式可见的if配对,所以基本语法是能用运行的,但是逻辑确实够乱的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1