C程 第四章

第四章

数组

注意事项:

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,其他和数组一样。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180613G16UG100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券