第四章
数组
注意事项:
1、a[n],n需要提前确定且不能改变
2、定义的时候,n是个数,由于数组的单位是从0开始的,所以只有a[n-1]
3、数组经常和循环结构连用,需要注意的是,循环当中n的意义。比如说
for(i=n-1;i>=k;i--)a[i+1]=a[i];a[k]=x;n++
这里的“n++”,说是数组的元素增加了一个,其实只是一个标记,在循环的时候,会多循环一次。
4、(接3)有的时候,我在做数组和循环有关的题目时候,总是因为某个地方多加了或多减了什么,而导致程序不对。总结下来,我认为要注意循环的作用,而不是在意循环的具体情况,比如在冒泡排序的时候:
其中,for(i=9;i>up;i--),(9-(up+1)+1)==9-up,即循环9-up次,其余的就不要多想,只要知道这个循环的作用就行。
再比如循环嵌套,
要搞成这个样子的杨辉三角,技巧就是:语句的意义是什么。
我们这里要的是:1第一行和对角线全是1;2第3列起每个元素是上列同行D与上边数之和。
为了完成1我们要循环n次(设n为总行数),把行和对角线赋值为1.
所以我们的目的就是搞一个意义为“从第零列开始循环n次“的语句,即for(i=; in; i++)
再看2好像繁琐了一点,其实一样。他要实现的目的是,从第三列开始,循环输出所在的那一列,满足2,循环完之后,移动到旁边一列。
所以我们的目的是““从a[1][2]开始每列循环i-1次”,第[2]列循环n-2次,即for(i=2; i
难点:
① i-1是通过循环的特性找到的规律。可以看到,每列循环输出的次数==这一列的序数-2。所以语句为for(j=开始循环的序号; j
② “开始循环的序号”:从a[1][2]开始循环的,所以for(j=1;j
”?”:由“开始循环的序号”决定,“?“=循环次数+“开始循环的序号”=i;
综上,我们可以得到通式
正向循环:
for(i=a;i
其中a是循环开始的位置,?=循环次数+“开始循环的序号”
反向循环:
for(i=a;i>?;i--)
其中a是循环开始的位置,?=“开始循环的序号”-循环次数
以上通式没有什么具体的作用,循环的关键就是,这个循环要起到什么效果,然后确定起始和循环的次数就可以了。
5、字符串处理
字符和字符串:字符就是每一个数组元素包含的;字符串是整个数组包含的。
在处理字符数组的时候,一定要搞清楚每单个下标只能输入一个字符,这是关键。要搞清楚“\0”的作用,具体见书上P80-81,其他和数组一样。
领取专属 10元无门槛券
私享最新 技术干货