第六节课

复习

  • 仔细阅读以下代码,请问最后会如何输出?(尽量自己手算或者脑子算)(10分钟)
    int a[4] = {1,2,3,4};
    int i = 0;
    while(i>0) { a[i]=5; i=i-1;}
    a[4] = 9;
    a[2] = 2;
    while(i<4)
    { 
      printf("%d  ",a[i]); 
      i = i+1;
    }
    

  • 定义一个名称为 array 并且数量为 5 的一个整形数组

  • float a[3]; 这条语句的作用是什么

  • 如何给一个数组进行初始化

循环(for)

我在前面给大家讲过 while 循环,它作用是当小括号 () 内的 表达式 结果为 时,不断地重复 大括号 {} 内的语句。

而在我个人一般的代码编写中,更倾向于使用 for 循环。

因为它在代码中更清楚,更方便

下面我们来看一下两组代码的对比

// while循环
int a[5];
int i=0;
while(i<5)
{
  /*代码段*/
  i = i+1;
}
// for循环
int a[5];
int i;
for(i=0; i<5; i=i+1)
{
  /*代码段*/
}

相对于 while ,用 for 写出来的循环更整洁明了

特别是在于 **在大括号内不需要添加 i=i+1; **

这就避免了有时候忘记添加自增语句而导致的 bug

并且能让花括号内的代码更加易懂

初始化判断结束后执行(一般用于自增) 这三项写在循环的开头

也能使阅读代码的人不必先翻查一遍才能知道运行的方式

比如不需要去找 i=i+1; 在哪里

当然,还是得要根据情况来选择使用哪一个

二维数组

相对于普通数组来说,二维数组能更易于储存、操作更多的数据

在我们的毕业作业“走迷宫”中

也会用到 字符 类型的二维数组来储存我们的 迷宫地图

所以希望同学们能够认真听讲

不过,关于字符数组之类的知识我们下一节课再讲

今天我们先介绍更好理解的int类型二维数组

二维数组 ,顾名思义,与普通数组不同的地方在于它是二维的(这不是废话吗

普通的数组像一台小火车,只有行

而二维数组不仅有行,还有列

首先下面这个是大家都知道的一维数组的定义方式

int array[8];

那么二维数组怎么定义呢?其实很简单

int array2[2][4];

只需要在一维数组后面加多一个中括号,里面再填上数字就好了

上面这个数组是一个,2行4列 的数组,数组下标如下:

array2[0][0] array2[0][1] array2[0][2] array2[0][3]
array2[1][0] array2[1][1] array2[1][2] array2[1][3]
  • 第一个中括号内的数字,代表
  • 第二个中括号内的数字,代表

如果说普通数组可以存一组数据的话

二维数组就可以存多组数据

那么利用上刚才学习的for循环我们就可以非常方便地操作二维数组了

int array[2][4];
int i, j;

for(i=0; i<2; i++)
{
  for(j=0; j<4; j++)
  {
    scanf("%d",&array[i][j]);
  }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注