2 zhirehaiyang zhirehaiyang 于 2016.01.25 19:24 提问

请问这句话如何编写成C语言代码?(逻辑关系实在搞不懂)

当电压大于5时,开关断开;直到电压小于3时,开关闭合;在这期间,开关保持断开。
开关闭合后,直到电压大于5,开关断开;在这期间,开关保持闭合。
ps:我试着用if  elseif语句,发现最后一点怎么也满足不了,请各位大神帮忙解答,谢谢!

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.25 19:56
已采纳

我说了有3个变量
v>5 s v 000
001
010
...
你排列下去,因为v>5 v<3不同时存在,可以去掉

剩下的你可以用卡诺图化简得到表达式。

zhirehaiyang
zhirehaiyang 谢谢!总算搞懂了
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.25 19:47

首先,你除了输入的条件还需要一个开关状态变量
假设电压是v,开关是s
void foo(v, s)
{
if (v > 5) s=0; return;
if (v < 3) s=1; return;

}

zhirehaiyang
zhirehaiyang 就算我加入了开关状态变量,我依旧是很迷茫,能不能具体说下,谢谢!
接近 2 年之前 回复
ouchao0727
ouchao0727   2016.01.25 20:25

个人感觉,当电压小于3或者大于5的时候反向一下开关状态就好了,只要你初始没错

xianfajushi
xianfajushi   2016.01.25 19:36

用2个if试看

zhirehaiyang
zhirehaiyang 两个if的话,电压在3-5之间时是断开还是闭合不能确定啊
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片