刚学c语言 请帮忙看一下这几行代码~

计算0-9各自出现的次数

#include
#include

main(){
int array[10]={0};
int ch,i;

while(ch=getchar()!=EOF){   
    if(isdigit(ch)){
        array[ch-'0']++;
    }
}
for(i=0;i<10;i++){
    printf("%d ",array[i]);
}

}
为啥输出都是0啊

求解答~感谢

c

5个回答

赋值运行算 = 的优先级最低,因此

 ch=getchar()!=EOF

应修改为:

 (ch=getchar()) != EOF

如果对您有帮助,请点击采纳答案好吗,谢谢~~

qq_40215833
Alter_Jade 谢谢哈哈哈哈
2 年多之前 回复
fight_in_dl
战在春秋 应为赋值运算符,打错字了:)
2 年多之前 回复

呃,可能是ch没有赋值,导致while循环没有执行?

赋值运行算 = 的优先级最低,因此

ch=getchar()!=EOF

改为:

(ch=getchar()) != EOF

括号优先级高,加括号解决

优先级问题
赋值运行算 = 的优先级最低,因此

ch=getchar()!=EOF

改为:

(ch=getchar()) != EOF

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐