統計輸入中各個數字出現的次數的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 關注
- 711 瀏覽
添加回答
舉報
0/150
提交
取消