1. 程式人生 > >嵌入式C語言難點一:數組

嵌入式C語言難點一:數組

數組 位置 scanf 列表 輸出結果 clu sort 難點 can

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...\n");

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

  printf("a[%d] is %d\n",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”,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;\n");

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

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

  printf("\n");} 

  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

嵌入式C語言難點一:數組