维数组元素的引用 例:读程序 ●注意:数组下标与循环变量的关系 #include "stdio.h" main( int i a[10] for(i=0;<=9;i++) a[]=ii 9 while(i 0) printf ("d ,a[il)i 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组元素的引用 ⚫ 例:读程序 ⚫ 注意:数组下标与循环变量的关系 #include "stdio.h" main() { int i,a[10]; for(i=0;i<=9;i++) a[i]=i; i = 9; while(i >= 0) printf("%d ",a[i]); }
维数组的初始化 在定义数组时,给数组元素赋初值 例:inta4]={1,3,57→a[0]1;[1]=3;a[2}=5; a1=7; 给部分元素赋初值 例:inta[10]={0,1,2,3,4}表示只给a[o]~a[4]5个元素 赋值,而后5个元素自动赋0值。 3.给全部元素赋值时,可以不写数组长度 例:inta[]={1,2345};nta5]={1,2,3,4,5} ●注意:当数组长度与提供的初始值的个数不想同时, 数组长度不能省略 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组的初始化 1. 在定义数组时,给数组元素赋初值 ⚫ 例:int a[4] = {1, 3, 5, 7}; →a[0]=1; a[1]=3; a[2]=5; a[1]=7; 2. 给部分元素赋初值 ⚫ 例:int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素 赋值,而后5个元素自动赋0值。 3. 给全部元素赋值时,可以不写数组长度 ⚫ 例:int a[ ]={1,2,3,4,5};→int a[5]={1,2,3,4,5}; ⚫ 注意:当数组长度与提供的初始值的个数不想同时, 数组长度不能省略
维数组的初始化 #include "stdio. h" ain ( 例:读程序 int i inta[5]={1,23,4,5}; intb[5]={1,2,3}; intc[]={1,2,3,4,5 int d[5] for(i=0;<5;++) printf("a[d]=d ,i,alil)i printf("\n") for(i=0;i<5;++) printf("b[d]=d i,b[i]) printf(\n")i for(i=0;i<5;i++) printf(c[d]=d ,i,c[il)i printf("\n")i for(主=0;i<5;++) printf('a[d]=d ,i,d[il
电子科技大学通信与信息工程学院 一维数组的初始化 ⚫ 例:读程序 #include "stdio.h" main() { int i; int a[5] = {1,2,3,4,5}; int b[5] = {1,2,3}; int c[] = {1,2,3,4,5}; int d[5]; for(i=0;i<5;i++) printf("a[%d]=%d ",i,a[i]); printf("\n"); for(i=0;i<5;i++) printf("b[%d]=%d ",i,b[i]); printf("\n"); for(i=0;i<5;i++) printf("c[%d]=%d ",i,c[i]); printf("\n"); for(i=0;i<5;i++) printf("d[%d]=%d ",i,d[i]); }
维数组程序举例 ●例(P116例67和P124例72) Fibonacci数 列:F1=1,F2=1,Fn=Fn1+F n>=3),求 前20项数据,要求每行输出4个数据 #include "stdio. h" #include "stdio. h" main o main o long int fl 1, f2 1 tmp i 1 ong int f[21]={0,1,1}; int ii int i; printf("%161d8161d",f1,f2); fox(=3;主<21;i++) fox(i=2;主<10:i++) f[i]=f[i-1]+f[i-2]; f1=f1+f2; 士。(1 1;立<21;++) f2=f2+f1; printf ("16ld", f[i])i printf("161d16ld'", fl, f2) if (14==0) printf("\n")i f(i号2 0) printf(m\n") 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组程序举例 ⚫ 例(P116例6.7和P124例7.2)Fibonacci数 列:F1 = 1, F2 = 1, Fn = Fn-1+Fn-2 (n>=3),求 前20项数据,要求每行输出4个数据。 #include "stdio.h" main() { long int f1 = 1, f2 = 1, tmp; int i; printf("%16ld%16ld", f1, f2); for(i=2; i<10; i++){ f1 = f1 + f2; f2 = f2 + f1; printf("%16ld%16ld", f1, f2); if (i % 2 == 0) printf("\n"); } } #include "stdio.h" main() { long int f[21] = {0,1,1}; int i; for(i = 3; i < 21; i++) f[i] = f[i-1] + f[i-2]; for(i = 1; i < 21; i++){ printf("%16ld", f[i]); if (i%4 ==0) printf("\n"); } }
维数组程序举例 ●例:统计全班某门考试的平均分数和最高 分数(设全班30人) #include "stdio. h" include stdio. h" main () main () int i: float sum=0.0, high=0.0, float score[30]=[0); float score, average for(i=0;i<30;i++) scanf("f", &score [i] printf("Input scores(30)\n") for(i=0;i<30;i++) fox(i=0;i<30;立++) sum + score [ili scanf ("f", &score)i if (score[i] high) sum += score: high score [i]; if (score high) high score average sum /i average sum /ii printf("average=f\t", average) printf("average=%f\", average)i printf("High score=f\n",high) printf("High score=f\n",high)i 信与信息工程学院
电子科技大学通信与信息工程学院 一维数组程序举例 ⚫ 例:统计全班某门考试的平均分数和最高 分数(设全班30人) #include "stdio.h" main() { int i; float sum=0.0, high=0.0, float score, average; printf("Input scores(30)\n"); for(i=0; i<30; i++){ scanf("%f", &score); sum += score; if (score > high) high = score; } average = sum / i; printf("average=%f\t",average); printf("High score=%f\n",high); } #include "stdio.h" main() { float score[30]={0}; for (i=0; i<30; i++) scanf("%f", &score[i]); for (i=0; i<30; i++){ sum += score[i]; if (score[i] > high) high = score[i]; } average = sum / i; printf("average=%f\t",average); printf("High score=%f\n",high); }