问题说明了一切:
...
int ndigit[10];
...//fill in the array with 0s
while((c = getchar()) != EOF)
if(c >= '0' && c <= '9')
++ndigit[c - '0']; //<== unable to understand this part
据推测,该数组存储来自输入流的传入数字字符...
最佳答案
在 C 中,您可以使用字符代码对字符进行算术运算。所以这确保你有一个数字,找出它是哪个数字(通过测量它与零的差异)然后在数组中的相应位置增加一个计数。完成后,ndigit[0]
将包含 '0'
的出现次数,ndigit[1]
将包含出现的次数'1'
,依此类推。
关于C:无法理解下面的数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1290884/