200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!

c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!

时间:2019-03-01 12:34:54

相关推荐

c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!

趣乐博思剑指信奥系列

趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案。开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详解等系列课程。面向10 - 16 岁少儿的编程教育,培养扎实的 C++ 语言基础,灵活运用算法的能力,分析解决问题的能力。

剑指信奥 | C 语言之兵人来袭!

当变量急剧增长

还记得我们在 C 语言一开始学过的变量吗?

在程序设计中,变量是指一个包含部分已知或未知数值的储存空间,以及相对应的符号名称(变量名)

Wikipedia

看一小段有关变量的代码:

#include

int main() {

int i;

scanf("%d", &i);

printf("%d", i);

}

这段代码非常的简单,它做了这样三件事:

声明一个变量 i输入一个值给 i再次输出 i 的值

我们很容易的定义了一个变量,并对它进行赋值。

比如这个变量表示一本书的页数,那么我们就完成的页数的输入和输出。

但是如果不只有一本书,而是有数学、语文、英语三本书,怎么做呢?

似乎也不难,看下代码:

#include

int main() {

int math, chinese, english;

scanf("%d %d %d", &math, &chinese, &english);

printf("%d %d %d", math, chinese, english);

}

这也并不难,三本书的页数都做到了输入和输出。

现在,新的问题又来了,不只有几本书了,我们要求输入一整个图书馆的所有书的页数...

图书馆的书有上万本

天呐,不会要定义几万个变量吧!

当然不用了,不然,定义完变量都地老天荒了~

我们来看一个聪明的解决方案 —— 数组。

数组的含义

什么是数组 array

在计算机科学中,阵列资料结构(英语:array data structure),简称数组(英语:Array)。

数组是由相同类型的元素(element)的集合所组成的资料结构,分配一块连续的内存来存储。

Wikipedia

当我们有大量的数据需要存储时,数组就派上了用场。

数组里通常保存同一类型的许多数据,并可以进行快速的赋值和快速的输出。

数组是一种非常重要的数据结构,学好用好数组对于我们进一步学习算法至关重要。

在计算机科学中,数据结构(英语:data structure)是计算机中存储、组织数据的方式。

Wikipedia

数组也是所有高级计算机语言都具有的一种数据存储方式。

那么,具体到了 C 语言,数组是怎样使用的呢?

数组的使用

我们现在开始学习数组的使用,按照以下的三个方面:

数组的定义数组的赋值数组的输出注意的问题

数组的定义

在 C 语言中,定义数组只需要一行代码:

int main() {

// 声明一个数组

int numbers[10];

}

对,就是这样,我们就声明的一个数组。

什么含义呢?

数组 numbers 中存放 10 个 int 类型的数据。

数组存放数据的示意

这 10 个数据在计算机的内存中是连续存放的,其中的每一个数据我们称之为这个数组的元素 element

每一个数组的元素还有一个序号,我们称之为索引 index,索引是从 0 开始的,numbers[0]就代表这个数组的一个元素。

数组的赋值

数组中的每一个元素都相当于一个变量,有了元素的概念,数组的赋值就很简单了:

int main() {

int numbers[10];

// 为数组元素赋值

numbers[0] = 123;

}

这样就为数组的一个元素赋值为 123。

数组的输出

当我们为元素赋值以后,就可以输出这个元素的值了:

#include

int main() {

int numbers[10];

numbers[0] = 123;

// 输出第一个元素的值

printf("%d", numbers[0]);

}

此外,如果我们需要快速输出一个数组所有元素的值,还可以利用我们学过的循环语句来实现:

#include

int numbers[10];

int main() {

// 循环输出数组的每个元素

for (int i = 0; i < 10; i++) {

printf("%d ", numbers[i]);

}

}

非常快的速度,10 个数字就完成了输出。

注意的问题

在使用数组时,我们需要注意一个问题,看下面这个例子:

#include

int numbers[10];

int main() {

printf("%d", numbers[10]);

}

这段程序是可以执行的,但是却存在一个不太容易发现的逻辑问题。

注意到数组 numbers 只有 10 个元素,而索引是起始于 0,所以,这个数组的元素只能是numbers[0]numbers[9]numbers[10]已经超出了索引的界限。

这是在数组使用时非常容易产生的一个错误,需要小心避免。

多维的数组

在上面我们讲的数组都是一维数组,就是说,数组的元素排列起来像一条线:

排成一列的兵人

而语言中,还有多维数组的存在,比如常用的二维数组。

如果说一维数组是一条线,那么二维数组就是一个面:

有行有列的二维数组

在 C 语言当中,二维数组的定义是这样的:

int main() {

// 二维数组的定义

int matrix[1024][768];

}

可以把二维数组理解为一个关于一维数组的一维数组,是不是有点绕?

关于二维数组的使用,就作为我们今天的课后思考题吧~

日积月累

array 数组element 元素index 索引

「 剑指信奥系列

从零开始,进阶信息学奥林匹克竞赛

清华计算机系哥哥专业讲解

趣乐博思教育

遇见你更优秀的孩子

‏r

如果您喜欢趣乐博思教育,请关注我们的公众号,发现您更优秀的孩子!

如果您从这篇文章有所收获,请点亮下方在看,或转发到朋友圈,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。