大家好,我是小开~
封面图就是Linux创始人Linus Torvalds在2000年8月25日给linux-kernel邮件列表的一封邮件中提到的(别问我这个linux-kernel是啥,我也不知道)
能说算不上什么,有本事就把你的代码给我看看。
好了,废话不多说,进入正题。上次我将一维数组比喻为一列火车,那么我们应该如何定义一维数组呢?其实,和造火车有很多相似点。
int a[11]={0,1,2,3,4,5,6,7,8,9,10};
上面就是定义一维数组的方法了。和定义普通变量一样,先说明变量类型——整型(int),然后是他的名字——“a”。不同的是,我们要加上火车有几个车厢——有11个,在a后面紧跟上中括号,中括号里写上数组里可以容纳变量的个数。
在等号右边,则是这个“火车”每个车厢里装的东西,用大括号包起来,每两个变量值之间用逗号相连。(当然,你可以不写等号以及其后面的内容,单独定义数组,这和变量类似)
(小开还是想重复一遍,千万要在英语输入法里打符号!编译器可不认你的中文符号。)
上次小开说过, ”火车“的编号——也就是数组的下标是从0开始的,而我们通常并不会用编号为0的“车厢”(不是不可以用,只是从1开始更加容易理解罢了)因此我们会多定义一个“车厢”。像是这里,其实我们只要10个变量就够,但是因为有0号的存在,所以要定义11个变量。
那么在引用数组里的变量的时候呢?
其实也非常简单,举个例子:输出a[5];
printf("%d",a[5]);
或者给a[5]赋值:
a[5]=1;
放在if语句里当做条件:
if(a[5]>0) cout<<"Positive"<<endl;
想必你已经猜出来了如何引用数组里的变量了。没错!数组名+中括号+下标!下标是用来指明数组里对应的下标变量(也称为元素,可以去上一次的文章中的概念里去看),具有唯一性。
那么请大家想想看,如何将for循环与一维数组联合起来呢?
for循环中,有一个变量,会随着规定的规律变化——对!循环变量!而数组中的下标,通常会有非常多,也需要一个可以有规律变化的变量来遍历这个数组!
那么把循环变量当做下标,这个主意是否可行?
for(int i=1;i<=10;i++) //a[i]???
比方说,我们来解决一个问题:给a[10001]这个数组当中的下标变量,分别赋值1,2,3..10000。(从a[1]开始赋值,a[0]不管他,C++会自己给他赋值,有兴趣的同学自己可以试试看)
这个时候,显然不能直接在定义的时候赋值了,那么我们把它放在循环里试试看。
for(int i=1;i<=10000;i++) //下标从1到10000,循环变量对应也是1到10000 a[i]=i; //重点!a[i]赋的值本身也是不停变化的,和下标值完全相同。
瞧!本来需要用10000句小的赋值语句的问题,用for循环很轻松的解决了。这就是循环的优势——避免无用的劳动力,方便写程序,方便看程序,方便改程序。
下一个问题:输入并输出一个数组。
首先,先定义这个一维数组。
int a[11];
接着,用for循环把一个一个数字输入进去。
for(int i=1;i<=10;i++) scanf("%d",&a[i]);
输出检验一下,程序是否达到我们想要的结果。
for(int i=1;i<=10;i++) printf("%d",a[i]);
最后,收尾。
return 0;
Talk is cheap. Show me the code.(Linus名言)
#include#include#includeusing namespace std;int main(){ int a[11]; for(int i=1;i<=10;i++) scanf("%d",&a[i]); //for循环缩进,为了程序更易理解 for(int i=1;i<=10;i++) //if语句也是这样 printf("%d",a[i]); return 0;}
好了,今天给大家留一个思考题。试试看能不能用所学知识,输出斐波那契数列?(1,1,2,3,5,8,13,21,34,55...)
今天就到这里了,拜拜~下次不见不散~
?点赞,在看,转发点起来~