书中的例题现在开始有一点挑战了,需要认真琢磨一下。
int ndigit[10];这个是声明ndigit这个整型数组其中有10个元素,打个比方就是我造了一个盒子,把这个盒子平均分成十份,
书中的原话是在C语言中数组下标总是从0开始,因此该数组的10个元素分别为ndigit[0]、ndigit[1]……ndigit[9]。
也就是说我把这个盒子从最开始的一个给他标号为0、第二个为1、第三个为2……这样。下标在我的理解就是编号。
然后这个编号里面装的东西就是这个下标代表的数据。
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
这一段是初始化变量,书上后面好像讲了,如果局部变量未初始化,那么他的数值是随机的,所以如果没有这一段的话,后面输入的时候也没有相应的数字对其进行赋值。那么打印出来的就不一定是什么了。。
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c - '0'];
这一段的意思是如果我输入的字符是0-9的其中一个数字。那么就对相应的数组中的元素加1。
ndigit[c - '0']这个是对下标,也就是编号几的元素进行加1操作。打个比方就是对编号几的盒子倒一点水。最后看每个编号的盒子里都有多少水。这里不直接写c是因为。c是字符显示的是ASCII表里对应数数字,0就是48了。
这节的练习够我写的了,我琢磨了好几天才明白,我要单独开一篇写。
再次吐槽这本书入门的不友好。
1.6数组
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...