zoukankan      html  css  js  c++  java
  • 嵌入式C语言难点一:数组

    1.数组的定义

      由若干相同类型并且有顺序关系的数组组成,数组中的每个变量就叫做这个数组的元素。

      表达式:<储存类型> <数据类型> <数组名> [<常量表达式>]

    2.一位数组的引用

      表示方法:数组名[下标]

    列:定义10个数组并逆序输出

      #include <stdio.h>

      int main(){

      /*数组定义,有10个元素*/

      Int i,a[10];

      a[0]=a[1]=1;

      for(i=2;i<10;i++){

      /*下标为整型表达式,之一标号范围为0-9*/

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

      printf("Fibonacci numbers... ");

      for(i=9;i>=0;i--){

      printf("a[%d]  is  %d ",i,a[i]);

      return 0;

    }

    }

    }

      输出结果:

      a[9]  is  55

      a[8]  is  34

      a[7]  is  21

      a[6]  is  13

      a[5]  is  8

      a[4]  is  5

      a[3]  is  3

      a[2]  is  2

      a[1]  is  1

      a[0]  is  1

      数组中下标是从0开始,范围是0到n-1,其中你为元素个数,通过下标就可以很方便的访问数组中的元素。

      切记,引用下标数组时,下标不能越界。

    3.局部数组的初始化

      (1)局部数组不初始化。

      对于普通局部数组,若定以时,没有初始化,则数组中的元素的值,是不确定的。

      (2)static 数组不初始化。

      若定义static数组时,没有初始化,则数组中的元素默认为0.

      (3)全局数组不初始化。

      同上,若没有初始化,也默认为0.

      (4)全部初始化。

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

      (5)部分初始化。

      int a[10]={1,2,9,23,5};

      按顺序就只有前五个赋了值,后五个自动赋为0。

      (6)数组全部赋值。

      若全部赋值,则可省略数组下标中的常量,编译器会根据列表自动计算数组元素的长度。

      Int a[]={1,2,9,56,12,3,8,46,7,13,};

      注意此时"[]"不能省略。

      (7)数组全部初始化为0。

      对于这种特殊情况,有多种列子

      Int main(){

      int a[10]={0};

      return 0;

    }

      还有这几种等,列:

      Int main(){

      int a[10],i;

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

      a[i]=0;

      return 0;

    }

    }

      #include <stdio.h>

      int main(){

      int a[10];

      memset(a,0,sizeof(a));

      return 0;

    }

      1.冒泡排序

      (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;一次类推,直至第n-1个数和第n个数比较为止,第一趟冒泡排序,最终,最大的数被安置在最后后一个元素位置上。

      (2)对前n-1个数进行第二趟冒泡排序,最终,是次大的数被安置在第n-1个元素位置。

       (3)重复上述过程,共经过n-1次冒泡排序后,排序结束。

      代码市列:

      #include <stdio.h>

      #define N 10

      int main(){

      int a[N],i,j,t;

      printf(“Please input %d numbers ”,n);

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

      scanf("%d',&a[i]);

      for(i=0;i<N-1;i++){

      for (j=0;j<N-1-i;j++){

        if(a[j]>a[j+1]]){

      t=a[j];

      a[j]=a[j=1];

      a[j+1]=t;

    }

    }

      printf("The array after sort; ");

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

      printf("%5d",a[i]);

      printf(" ");} 

      return 0;

    }

      输出结果:

      Please input 0 numbers

      5,12,6,8,78,45,32,14,11,9

      the array after sort:

      5,6,8,9,11,12,14,32,45,78

  • 相关阅读:
    第02组 Beta冲刺 总结
    第02组 Beta冲刺 (5/5)
    第02组 Beta冲刺 (4/5)
    第02组 Beta冲刺 (3/5)
    第02组 Beta冲刺 (2/5)
    第02组 Beta冲刺 (1/5)
    关于IE6中做兼容的那点事。
    一个ajax同步与异步引发的血案。
    浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
    浅谈Dictionary用法
  • 原文地址:https://www.cnblogs.com/hj-1996-123/p/7252281.html
Copyright © 2011-2022 走看看