Библиотека обработки символов. Логическая ошибка - C (СИ)

Формулировка задачи:

Первая функция с выбором работает правильно, все остальные функции обрабатываются через ELSE. Как исправить?
#include <stdio.h>
#include <ctype.h>
 
int main()
{
    char a;
 
 
    printf("Enter a character: ");
    scanf("%c",&a);
    
 
    if (isdigit(a) == 1)
         printf("%c is a digit.\n",a);
    else
         printf("%c is not a digit.\n",a);
    
 
    if (isalpha(a) == 1)
        printf("%c is a letter\n",a);
    else 
        printf("%c is not a letter\n",a);
    
 
    if (isalnum(a) == 1)
        printf("%c is a digit or a letter\n",a);
    else 
        printf("%c is not a digit or a letter\n",a);
    
 
    if (isxdigit(a) == 1)
        printf("%c is a hexandecimal\n",a);
    else 
        printf("%c is not a hexandecimal\n",a);
    return 0;
}

Код к задаче: «Библиотека обработки символов. Логическая ошибка - C (СИ)»

textual
if (isalnum(a))

15   голосов, оценка 4.133 из 5


СОХРАНИТЬ ССЫЛКУ