【发布时间】:2016-11-01 19:01:15
【问题描述】:
我有以下代码sn-p:
int ndigit[10] = {0,0,0,0,0,0,0,0,0,0};
void count() {
char c;
while (cin.get(c)) {
if (c>='0' && c<='9') {
ndigit[c-'0']++;
}
}
所以c 必须在 0 和 9 之间(0 和 9),那么为什么需要像 ndigit[c-'0'] 那样索引数组而不是 ndigit[c] 呢?
如果我是对的,在这两种情况下,c 的值都可能出现不止一次,所以ndigit[c-'0'] 的值无论如何都会被覆盖...
我很欣赏你的智慧!
【问题讨论】:
-
因为
'0' != 0 -
不确定它是否属于骗子但高度相关:stackoverflow.com/questions/15598698/…