我哪部分错了?求解。

ZY02-选择结构-字符变换
接收用户从键盘输入的单个字符。然后根据字符的类型,对它的ASCII编码做加法,变换指定的字符为其他字符: 如果是数字,加上2;如果是大写字母,加上3;如果是小写字母,加上4。
不是上述的字符范围,不变。

输入格式:

一个字符。

输出格式:

变换或未变换后的字符。

输入样例1:

3
结尾无空行
输出样例1:

数字是ASCII编码加上的2。

5
结尾无空行
输入样例2:

B
结尾无空行
输出样例2:

数字是ASCII编码加上的3。

include"stdio.h"
main(){
char a,b;
scanf("%c",&a);
if('a'>='0'&&'a'<='9'){
b=a+2;
}
else if('a'>='A'&&'a'<='Z'){
b=a+3;
}
else if('a'>='a'&&'a'<='z'){
b=a+4;
}
else{
b=b;
}
printf("%c",b);
}



#include <stdio.h>
int main()
{
    char a, b;
    scanf("%c", &a);
    if (a >= '0' && a <= '9')
    {
        b = a + 2;
    }
    else if (a >= 'A' && a <= 'Z')
    {
        b = a + 3;
    }
    else if (a >= 'a' && a <= 'z')
    {
        b = a + 4;
    }
    else
    {
        b = b;
    }
    printf("%c", b);
}