物联网学习教程——一维数组的引用

348 阅读2分钟

  对数组元素初始化的实现方法

  1.在定义数组时对数组元素赋以初值。

  例如:int a[10]={0,1,2,3,4,5,6,7,8,9};

  将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9。

  2.可以只给一部分元素赋值。

  例如:int a[10]={0,1,2,3,4};

  定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。

  3.如果想使一个数组中全部元素值为0,可以写成:

  int a[10]={0,0,0,0,0,0,0,0,0,0};

  或inta[10]={0};

  不能写成:int a[10]={0*10};

  4.在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。

  例如:int a[5]={1,2,3,4,5};

  也可以写成int a[]={1,2,3,4,5};

  int a[10]={1,2,3,4,5};只初始化前5个元素,后5个元素为0。

  例1:用数组来处理,求解Fibonacci数列。

  Fibonacci数列公式:已知:a1=a2=1 an=an-1+an-2

  即:1,1,2,3,5,8,13

  程序实例:for(i=2;i<20;i++)

  f[i]=f[i-2]+f[i-1];

  for(i=0;i<20;i++)

  {

  if(i%5==0)printf(″\n″);

  printf(″%12d″,f[i])

  }/For循环结束/

  }/程序结束/(if语句用来控制换行,每行输出5个数据。)

  程序举例2:

  

  经过第一趟(共5次比较与交换)后,最大的数9已“沉底”。然后进行对余下的前面5个数第二趟比较,

  

  如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。

  

  程序实例3:

  for(j=0;j<9;j++)

  for(i=0;i<9-j;i++)

  if(a[i]>a[i+1])

  {

  t=a;a=a[i+1];

  a[i+1]=t;

  }

  printf(″the sorted numbers:\n″);

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

  printf(″%d″,a[i]);

  printf(″\n″);

  }/程序结束/

  

  最后:

  关注回复“物联网”即可获取物联网全套视频教程