咋多一个英文,y不是8 吗?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

y k s q不初始化0就直接使用?另外代码贴出来,而不是发图片。

咱能在使用变量前有明确的初始化不,给y,s,k,q赋初值0

为什么看不到问题 好多个都是这样

因为统计英文字母的变量等没有初始化为0,初始化为0就可以了。

#include <stdio.h>

int main(void){
    int i=0,y=0,k=0,s=0,q=0;
    char a[100];
    gets(a);
    
    for(i=0;a[i]!='\0';i++){
        if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){
            y++;
        }else if(a[i]>='0'&&a[i]<='9'){
            s++;
        }else if(a[i]==' '){
            k++;
        }else {
            q++;
        }
    }
    
    printf("%d %d %d %d\n",y,k,s,q);
    
    return 0;
}