为了账号安全,请及时绑定邮箱和手机立即绑定

C语言的一个小问题

C语言的一个小问题

C
饮歌长啸 2018-08-17 06:09:22
统计输入中各个数字出现的次数的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]


查看完整回答
反对 回复 2018-08-27
  • 1 回答
  • 0 关注
  • 656 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信