Tvally 2022-05-24 11:33 采纳率: 61.1%
浏览 36

大家好,我只有一个问题,为什么我的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;
}

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

2条回答 默认 最新

  • 不会长胖的斜杠 新星创作者: 后端开发技术领域 2022-05-24 11:52
    关注

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

    望采纳

    评论

报告相同问题?

问题事件

  • 创建了问题 5月24日