Я пишу программу на C, чтобы попросить пользователя ввести пин-код и проверяет, делится ли каждая цифра числа на 2. Например, если они вводят 123452, он сообщает пользователю, что это неправильно, потому что 1, 2,3,5 не делится на 2. Если я ввожу 642642, он говорит, что все в порядке, но если я ввожу в 622248, он отображает недопустимое число, что неверно, потому что каждая цифра в 622248 делится на 2. Как я могу это исправить ошибка?
#include <stdio.h>
#define N 6
int main(void)
{
int num, digits[N], i, invalid, count = 1, sum = 0;
TOP:
printf("Enter pin code (attempt %d): ", count++);
scanf("%d", &num);
invalid = num;
// stores each digit of the number entered into the the array
for (i = 6; i >= 0; i--) {
digits[i] = num % 10;
num = num / 10;
}
// if the user enters more than 6 digits than it will give you an error.
if (digits[N] > 6) {
printf("Code %d is invalid!\n", invalid);
goto TOP;
}
// loops through the array elements and see if each digit is divisble by 2, if not then print an error.
for (i = 0; i < 6; i++) {
if (digits[i] % 2 != 0) {
printf("Code %d is invalid!\n", invalid);
goto TOP;
}
else {
printf("Congratulation, code %d is valid!\n", invalid);
break;
}
}
return 0;
}