码迷,mamicode.com
首页 > 编程语言 > 详细

嵌入式C语言难点一:数组

时间:2017-07-28 20:03:31      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:nbsp   并且   set   比较   数据   10个   stdio.h   最大的   ati   

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语言难点一:数组

标签:nbsp   并且   set   比较   数据   10个   stdio.h   最大的   ati   

原文地址:http://www.cnblogs.com/hj-1996-123/p/7252281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!