Конечный автомат для получения пароля пользователя с помощью клавиатуры 4x4
когда я запускаю эту функцию теперь у которой есть случай проверить правильность пароля или нет похоже что она сравнивает первый элемент и игнорирует остальные это в c
void Enter_password(){ key= get_key(); if (key >= 0 && key <=9){ switch (password_input){ case FIRST: password[0]= key; HAL_Delay(300); password_input = SECOND; break; case SECOND: password[1]= key; HAL_Delay(300); password_input = THIRD; break; case THIRD: password[2]= key; HAL_Delay(300); password_input = FOURTH; break; case FOURTH: password[3]= key; HAL_Delay(300); password_input = CHECK; case CHECK: for (int i=0; i<sizeof(password_ACT_DEACT); i++){ if (password[i] != password_ACT_DEACT[i]){ TextLCD_Cmd(&lcd,0x80); TextLCD_Puts(&lcd,"Wrong!"); FLAG= false; HAL_Delay(2000); password_input= FIRST; break; } else { TextLCD_Cmd(&lcd,0x80); TextLCD_Puts(&lcd,"RIGHT!!"); FLAG=true; HAL_Delay(2000); password_input= FIRST; break; } } default: TextLCD_Clear(&lcd); password_input= FIRST; break; } } }
Что я уже пробовал:
Я сделал конечный автомат, чтобы взять у пользователя 4-значный ввод и проверить, правильно ли он работает или нет
Rick York
Ваше наблюдение верно. Он смотрит только на первый элемент.
Это раздел вопросов и ответов. У вас есть вопрос?
H W
как это исправить?