模拟灯的开关状态的代码

usingc2002 2004-01-03 12:16:56
#include <stdio.h>

enum state {OFF, ON};
enum input {SWITCH_OFF, SWITCH_ON};

int main(void)
{
enum state LightState;
enum input LightInput;

LightState = OFF;
LightInput = SWITCH_ON;

switch(LightState) {
case OFF: //Light is currently OFF
switch(LightInput) {
case SWITCH_OFF: break;
case SWITCH_ON: LightState = ON; break;
}
break;
case ON: //Light is currently ON
switch(LightInput) {
case SWITCH_ON: break;
case SWITCH_OFF: LightState = OFF; break;
}
break;
}

printf("LightState = %s\n", LightState ? "ON" : "OFF");

return 0;
}
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
usingc2002 2004-01-03
  • 打赏
  • 举报
回复
用二维数组简化代码。

#include <stdio.h>

#define NUM_STATES 2
#define NUM_INPUTS 2
enum state {OFF = 0, ON};
enum input {SWITCH_OFF = 0, SWITCH_ON};

int main(void)
{
enum state LightState;
enum state LightInput;
enum state TransTable[NUM_STATES][NUM_INPUTS] = {{OFF, ON}, {OFF, ON}};

LightState = OFF;
LightInput = SWITCH_ON;
LightState = TransTable[LightState][LightInput];
printf("LightState = %s\n", LightState ? "ON" : "OFF");

return 0;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧