C语言三开关控制一盏灯亮灭

C语言中有s1,s2,s3三个按钮s1为主按钮。当s1没有闭合的时候s2,s3闭不闭合,灯都不亮。当s1闭合时,s2或s3只要有其中一个有动作(初始状态可为0也可为1)也就时两个开关只要有一个状态发生变化,灯就亮。

在组成原理中,这个就是一个 触发器 外面接一个开关……

写真值表然后就很容易出来啊 !

观楼主英俊潇洒、风流倜傥,必当世之豪杰,诚邀楼主加入0x30百度贴吧,共商义举,成千秋霸业。

s1 s2 s3 f
0  0  0  0
0  0  1  0
0  1  0  0
0  1  1  0
1  0  0  0
1  1  1  0
1  0  1  1
1  1  0  1

这样我们就可以写出逻辑表达式来了。


#include <iostream>
using namespace std;
int main()
{
int s1, s2, s3;
const S1_BREAK = 100;  //用于跳出循环的
do {
cin>>s1>>s2>>s3;
if (s1 && ((!s2 && s3) || (s2 && !s3))) {
cout<<"on"<<endl;
} else {
cout<<"off"<<endl;
}
if (s1==S1_BREAK) break;
}while (true);
return 0;
}

运算结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-25
#include<stdio.h>
void main()
{
    int s1,s2,s3;
    printf("请输入3个开关的状态:");
    scanf("%d,%d,%d",&s1,&s2,&s3);
    if(s1==1&&(s2==1||s3==1))
    {
        printf("灯亮\n");
    }
    else
    {
        printf("灯不亮\n");
    }
}

if(s1==1&&(s2==1||s3==1))
主要判断就是这句

希望对你有帮助。

第2个回答  2013-06-25
#include <stdio.h> 
int main()

 unsigned int s1, s2, s3;
 
 s1 = 0;
 s2 = 0;
 s3 = 0;
while(1)
{
 printf("please input s1, s2, s3:");
 scanf("%d,%d,%d", &s1,&s2,&s3);
 if(s1 == 999)    //死循环的出口当s1=999时
     break;
 if(s1 != 0)
 {
  if(s2==1 || s3==1)
   printf("灯亮!\n");
  else if(s2==1 && s3==1)
   printf("灯亮!\n");
  else
   printf("灯不亮!\n");
 }
 else
  printf("灯不亮!\n");
}
 return 0;
}

第3个回答  2013-06-25
if(s1&&(s2||s3))
led = 1;
else
led = 0;
相似回答