c语言isalpha isdigit 使用问题

 #include<stdio.h>
#include<ctype.h>  
int main()      
{      
int a,x=0,y=0,z=0;      
scanf("%d",&a)    ;
if(isalpha('a'))x++;      
else if(isdigit('a'))y++;      
else z++;         
printf("字母数=%d,数字数=%d,其他字符数=%d\n",x,y,z);         
return 0;      
}

我想问一下 我输入一个5为什么显示字母数为1
我那个括号里是'a'呀。。。x是如何+1的??应该是在y+呀

if(isalpha('a')),这里的a不是你定义的变量,使用变量直接写就行,如果是一个字母a,就用引号括起来,
if(isalpha(a)): 判断变量a是不是字母
if(isalpha('a')):判断字符‘a'是否是字母,显然这个是永真式

 #include<stdio.h>
#include<ctype.h>  
int main()      
{      
int a,x=0,y=0,z=0;      
scanf("%d",&a)    ;
if(isalpha(a))x++;      //把'a'改为a
else if(isdigit(a))y++;      //把'a'改为a
else z++;         
printf("字母数=%d,数字数=%d,其他字符数=%d\n",x,y,z);         
return 0;      
}