状态机,在外界激励下,会影响当前的状态。
#include <stdio.h>
typedef enum {
STATE1,
STATE2,
STATE3,
STATE4,
STATE5,
STATE6,
STATE7,
}CurrentState;
int main(int argc, char **argv)
{
int num = 0;
CurrentState state = STATE1;
printf("请依次输入密码\n");
while(1)
{
scanf("%d", &num);
printf("num = %d\n",num);
switch(state)
{
case STATE1:
if(num == 1) state = STATE2;
else state = STATE1;
break;
case STATE2:
if(num == 2) state = STATE3;
else state = STATE1;
break;
case STATE3:
if(num == 3) state = STATE4;
else state = STATE1;
break;
case STATE4:
if(num == 4) state = STATE5;
else state = STATE1;
break;
case STATE5:
if(num == 5) state = STATE6;
else state = STATE1;
break;
case STATE6:
if(num == 6) state = STATE7;
else state = STATE1;
break;
default:
break;
}
if(state == STATE7)
{
printf("密码正确.!\n");
break;
}
}
return 0;
}