統(tǒng)計(jì)輸入中各個數(shù)字出現(xiàn)的次數(shù)的int c; while((c=getchar())!=EOF) { if(c>='0'&&c<='9') ++ndigit[c-'0']; //++ndigit[c]為什么不行? }
1 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個贊
getchar()輸入的是一個字符。不是int類型的數(shù)字。所以ndigit[c]是c的Ascii碼值,所以要減去'0'的ascii碼值才能得到正確的數(shù)字。
比如輸入的是9
9的ascii值是57 那么ndigit[c]就是ndigit[57]。而ndigit[c-'0']就是ndigit[57-48]=ndigit[9]
- 1 回答
- 0 關(guān)注
- 702 瀏覽
添加回答
舉報(bào)
0/150
提交
取消