例3、从键盘输15个整数,然后反序输出 分析:不用数组行否?行,但非常繁杂。下面用数组编程: include <stdio.h> maino f int i, a[151: for(i=0:<15;+) scanf(%dn,8a);(不能以“”分开 printf(In); for(i=14;>=0;1-) printf(4d",a[); 输入:123456789101112131415 输出:151413121110987654321 注意:1、循环控制变量的初值、终值及控制条件。 2、不能整体输出数组例; printf(“%d”a)是错误的
例3、从键盘输15个整数,然后反序输出。 分析:不用数组行否?行,但非常繁杂。下面用数组编程: #include <stdio.h> main() { int i,a[15]; for(i=0;i<15;i++) scanf(“%d”,&a[i]); printf(“\n”); for(i=14;i>=0;i--) printf(“%4d”,a[i]); } 输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 注意:1、循环控制变量的初值、终值及控制条件。 2、不能整体输出数组例:printf(“%d”,a);是错误的。 不能以“, ”分开
二、一维数组的存储结构与初始化 1、一维数组的存储结构 数组变量在内存中分配一片连续的存储单元,数组元素按 数组下标从小到大连续存放。 例inta[5 a[0] ao 0 初始化 a[3] 234 内存
二、一维数组的存储结构与初始化 1、一维数组的存储结构 数组变量 在内存中分配一片连续的存储单元,数组元素按 数组下标从小到大连续存放。 例 int a[5]; a[0] a[1] a[2] a[3] a[4] a[0] a[1] a[2] a[3] a[4] 0 1 2 3 4 初始化 内存
2、一维数组的初始化 含义:在定义数组的同时,对数组各元素指定初值。 初始化是编译阶段完成的,不占用运行时间。 注意:用赋值语句或输入语句也可给数组元素指定初值, 但赋值是在运行时完成的,占用运行时间。 对数组初始化的几种方法: ①在定义数组时,对全部数组元素赋予初值,此时可省 数组长度,系统自定。 例:inta[]={0,1,2,34};等价于inta5]={0,1,2,3,4 ②在定义数组时,对部分数组元素赋予初值。 651: int a[5]=1, 2), b[5]; static int c[51 a[o]=1,a[1=2;其它为0;c[0]下c4]为0 b0]-b[4]不确定
2、一维数组的初始化 含义:在定义数组的同时,对数组各元素指定初值。 初始化是编译阶段完成的,不占用运行时间。 注意:用赋值语句或输入语句也可给数组元素指定初值, 但赋值是在运行时完成的,占用运行时间。 对数组初始化的几种方法: ①在定义数组时,对全部数组元素赋予初值,此时可省 数组长度,系统自定。 例:int a[ ]={0,1,2,3,4}; 等价于 int a[5]={0,1,2,3,4}; ②在定义数组时,对部分数组元素赋予初值。 例:int a[5]={1,2},b[5]; static int c[5]; a[0]=1,a[1]=2;其它为0;c[0]~c[4]为0。 b[0]~b[4]不确定
例:# nclude< stdio. h> maino int,a[5}={3,4,5},b[5]} printf( naray a is: for(=0i!5;计+) printf(“%6d”,a[); printf("naray b is: for(=0<5;++)pint(%d,”,b[j); 运行结果: array a is:3 4 5 0 0 array b is:-32,1398,40,1170,454
例:#include <stdio.h> main() { int i,a[5]={3,4,5},b[5]; printf(“\narray a is: ”) for(i=0;i<5;i++) printf(“%6d”,a[i]); printf(“\narray b is: ”) for(i=0;i<5;i++) printf(“%d,”,b[i]); } 运行结果: array a is: 3 4 5 0 0 array b is: -32,1398,40,1170,454
例:从键盘上输入10个整数,用选择法将其 按由小到大的顺序排列并输出 基本思想: (1)从第0个位置到第9个位置中选择出最小的一个与第 0个位置的数交换。 (2)从第1个位置到第9个位置中选择出最小的一个与第 1个位置的数交换。 (9)从第8个位置到第9个位置中选择出最小的一个与第8 个位置的数交换。 例:5133932228123 21推序过程如下:
例:从键盘上输入10个整数,用选择法将其 按由小到大的顺序排列并输出。 基本思想: (1)从第0个位置到第9个位置中选择出最小的一个与第 0个位置的数交换。 (2)从第1个位置到第9个位置中选择出最小的一个与第 1个位置的数交换。 … (9)从第8个位置到第9个位置中选择出最小的一个与第8 个位置的数交换。 例:5 13 3 9 32 22 8 1 23 21 排序过程如下: