统计输入中各个数字出现的次数的int c; while((c=getchar())!=EOF) { if(c>='0'&&c<='9') ++ndigit[c-'0']; //++ndigit[c]为什么不行? }
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
getchar()输入的是一个字符。不是int类型的数字。所以ndigit[c]是c的Ascii码值,所以要减去'0'的ascii码值才能得到正确的数字。
比如输入的是9
9的ascii值是57 那么ndigit[c]就是ndigit[57]。而ndigit[c-'0']就是ndigit[57-48]=ndigit[9]
- 1 回答
- 0 关注
- 656 浏览
添加回答
举报
0/150
提交
取消