大家好,我只有一个问题,为什么我的if判断失效了?

问题遇到的现象和发生背景

我输入一些字符串,然后当判断为字母时一个变量加1,但是与此同时else也在判断,这是为什么呢?

问题相关代码,请勿粘贴截图
# include<stdio.h>
int main()
{
    char c[10] = {'0'};
    for(int i = 0;i <= 9;i++){
        scanf("%c",&c[i]);
    }
    int le = 0;
    int bl = 0;
    int di = 0;
    int ot = 0;
    for(int i =0;i <= 9;i++){
        if(65 <= c[i] && c[i] <= 122){
            le++;
        }
        else if(c[i] == 32 || c[i] == 13){
            bl++;
        }
        else if(48 <= c[i] && c[i] <= 57){
            di++;
        }
        else{
            ot++;
        }
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d\n",le,bl,di,ot);
    return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

if(65 <= c[i] && c[i] <= 122)
改成
if('A' <= c[i] && c[i] <= 'z')
以此类推

望采纳

改成这种格式

img


#include <stdio.h>

int main(){

char c; //用户输入字符

int letters=0, // 字母数目

space=0, // 空格数目

digit=0, // 整数数目

others=0; // 其他字符数目

printf("输入一些字符:");

while((c=getchar())!='\n'){ // 每次读取一个字符,回车时结束

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letters++;//字母+1

else if(c==' ')

space++;//空格+1

else if(c>='0'&&c<='9')

digit++;//数字+1

else

others++;//其他+1

}

printf("\n统计结果:\n英文字母=%d\n空格=%d\n整数=%d\n其他字符=%d\n\n", letters, space, digit, others);

return 1;

}