411一维数组的引出及使用 2.说明 (3)数组长度:指数组中元素的个数 (4)数组元素的下标由零开始 例:inta[10中a有10个元素,所以数组长度为10, 数组元素分别是:a0,a[11…81,a19 (5)常量表达式中不能包含变量,其值也不能是实数 int n: int n=6: t define size 8 scanf(%od", &n); int a n; int an: int a 2+3]; int b[8.5 对 错 oat bsIzE
2. 说明 (3) 数组长度 : 指数组中元素的个数 (4) 数组元素的下标由零开始 例: int a[10] 中 a 有10个元素, 所以数组长度为10, 数组元素分别是: a[0] , a[1] … a[8], a[9] (5) 常量表达式中不能包含变量, 其值也不能是实数 int n; scanf("%d",&n); int a[n]; int n=6; int a[n]; int b[8.5]; #define SIZE 8 … int a[2+3]; float b[SIZE]; 对 错 4.1.1 一维数组的引出及使用
41一维数组的引出及使用 四、数组元素的引用 101095a0 1.引用形式:数组名[下标 101280al 2.说明 101466a2 (1)下标可以是整型常量或整型表达式101675a3 如:a[,a[2*3 101884a41 ()数组定义为m15l,数组长度为5maon2as 而下标在0--4之内,即a01-a41 注意: 如果出现a5=72;编译时不会假设这个存储空间是变量x 指出错误,系统会将a14后下一个的实际上叫5是不存在的 存储单元赋值为32,但这样可能如果执行了=72会将 会破坏数组以外其他变量的值 原有的正确数据覆盖掉
四、数组元素的引用 1. 引用形式 : 数组名[ 下标 ] 注意: 如果出现 a[5] = 72 ; 编译时不会 指出错误, 系统会将a[4]后下一个 存储单元 赋值为32, 但这样可能 会破坏数组以外其他变量的值 84 75 66 80 1010 95 1012 1014 1016 1018 a[0] a[1] a[2] a[3] a[4] 1020 72 a[5] 假设这个存储空间是变量x 的, 实际上a[5]是不存在的, 如果执行了a[5]=72, 会将x 原有的正确数据覆盖掉 2. 说明 (1) 下标可以是整型常量或整型表达式 如: a[1] , a[2*3] (2) 数组定义为 int a[5] , 数组长度为5 而下标在0 -- 4之内, 即a[0] -- a[4] 4.1.1 一维数组的引出及使用
411一维数组的引出及使用 五、一维数组的初始化 1.概念:在定义一维数组时对各元素指定初始值称为 数组的初始化inta5={1,3,5,7,9}; 2.说明 (1)对数组的全体元素指定初值,初值用{}括起来,数据之间用 逗号分开。这种情况下,可以不指明数组的长度,系统会根据 }内数据的个数确定数组的长度 int all={1,3,5,7,9};L13579 (2)对数组中部分元素指定初值(这时不能省略数组长度) inta|5={1,3,5}; 13500 (3)使数组中的全部元素初始值都为0 inta5l={0,0,0,0,0};简单的写法:inta5={0};
五、 一维数组的初始化 1. 概念 : 在定义一维数组时对各元素指定初始值称为 数组的初始化 int a[5] = { 1 , 3 , 5 , 7 , 9 } ; 2. 说明 (1) 对数组的全体元素指定初值, 初值用 { } 括起来, 数据之间用 逗号分开。这种情况下, 可以不指明数组的长度, 系统会根据 { }内数据的个数确定数组的长度 int a[ ] = { 1 , 3 , 5 , 7 , 9 } ; (2) 对数组中部分元素指定初值 ( 这时不能省略数组长度) int a[5] = { 1 , 3 , 5 }; (3) 使数组中的全部元素初始值都为0 int a[5] = { 0, 0, 0, 0, 0 } ; 简单的写法: int a[5]={ 0 } ; 4.1.1 一维数组的引出及使用 1 3 5 7 9 1 3 5 0 0
411一维数组的引出及使用 例4-2:使数组元素a0~a的值为0~9,将其逆序再输出 #includesstdio h 4|a|0 #definen 1o void main() 7a[ll f int i, t, ani 3|a2 for(i=0; i<N; i++) 3 scanf( 0/?, &aliD for(i=0; K<N/2; 1++) 9|a|4 i t=aig 2|a5l a=aN-1-il; 6|al6 a N-1-il=ts 0|a7 逆序 for(i=0;i<=9;i++) 8a|8l printf(%3d",aiD; 5|a[9
逆序 #include<stdio.h> #define N 10 void main( ) { int i, t, a[N]; for ( i=0; i<N; i++) scanf(“%d”,&a[i]) ; for(i=0; i<N/2; i++) { t=a[i]; a[i]=a[N-1-i]; a[N-1-i]=t; } for( i=0; i<=9; i++) printf("%3d ", a[i]); } 例4-2: 使数组元素a[0]~a[9]的值为0~9, 将其逆序再输出 4.1.1 一维数组的引出及使用 5 8 0 1 9 2 6 3 7 4 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[0]→a[9] 4 5 7 8 3 0 a[1] a[2]→→a[8] a[7]
411一维数组的引出及使用 例4-3:用数组求 fibonacci数列的前20个数 #include <stdio. h> void maino f011|m21+m1 {inti,f20={1,1}; f[1 for(i=2;i<20;i++) f2|2 f3=f1+f2 fi=fi-2+fi-1; f|3]3 for(i=0;i<20;i++) f4]5 i14=f2]+3 {if(i%4==0) f[518 printf(n”); printf6d”,f);n9|6765
例4-3: 用数组求fibonacci数列的前20个数 #include <stdio.h> void main( ) { int i , f[20]={1,1}; for ( i=2 ; i<20 ; i++) f[i]=f[i-2]+f[i-1]; for ( i=0; i<20 ; i++) { if ( i%4==0 ) printf(“\n”); printf(“%6d”, f[i] ); } } 1 1 0 0 0 0 : 0 f[0] f[1] f[2] f[3] f[4] f[5] : f[19] 2 3 5 8 6765 i=2 f[2]=f[0]+f[1] i=3 f[3]=f[1]+f[2] i=4 f[4]=f[2]+f[3] 4.1.1 一维数组的引出及使用