预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共68页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第六章问题:给一组数排序,这组数该如何存放呢本章要点6.1数组的概念1.一维数组的定义格式为: 类型说明符数组名[常量表达式]; 例如:inta[10]; 它表示定义了一个整形数组,数组名为a,此数组有10个元素。 2.在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。 3.常量表达式中可以包括常量和符号常量,但不能包含变量。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如:intn; scanf(“%d″,&n);/*在程序中临时输入数 组的大小*/ inta[n];注意: 定义数组时用到的“数组名[常量表达式]”和引用数组元素时用到的“数组名[下标]”是有区别的。 例如∶inta[10]; t=a[6];2.一维数组元素引用的程序实例对数组元素初始化的实现方法:3.如果想使一个数组中全部元素值为0,可以写成: inta[10]={0,0,0,0,0,0,0,0,0,0}; 或 inta[10]={0};4.在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。 例如:inta[5]={1,2,3,4,5}; 也可以写成inta[]={1,2,3,4,5}; inta[10]={1,2,3,4,5};只初始化前5个元素,后5个元素为0。例6.2:用数组来处理求Fibonacci数列问题。for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0)printf(″\n″); printf(″%12d″,f[i]) }/*For循环结束*/ }/*程序结束*/例6.3:输入10个数,用起泡法对这10个数排序(由小到大)。第 二 趟 比 较程序流程图如下:程序实例6.3: #include<stdio.h> voidmain() { inta[10]; inti,j,t; printf(″input10numbers:\n″); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n");for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i];a[i]=a[i+1]; a[i+1]=t; } printf(″thesortednumbers:\n″); for(i=0;i<10;i++) printf(″%d″,a[i]); printf(″\n″); }/*程序结束*/6.3二维数组的定义和引用6.3.1定义二维数组注意:我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。 例如:可以把a看作是一个一维数组,它有3个元素:a[0]、a[1]、a[2],每个元素又是一个包含4个元素的一维数组。C语言中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。下图表示对a[3][4]数组存放的顺序。a00a01a02a03 a10a11a12a13 a20a21a22a23 二维数组元素的表示形式为: 数组名[下标][下标] 例如:a[2][3] 下标可以是整型表达式,如a[2-1][2*2-1]常出现的错误有: inta[3][4];/*定义a为3×4的数组*/ ┆ a[3][4]=3;可以用下面4种方法对二维数组初始化:3.可以对部分元素赋初值。 例如:inta[3][4]={{1},{5},{9}};4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。 例如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};它等价于:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};6.3二维数组的定义和引用6.3.4二维数组程序举例printf(″%5d″,a[i][j]); b[j][i]=a[i][j]; } printf(″\n″); } printf(″arrayb:\n″); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d″,b[i][j]); printf(″\n″); } }/*程序结束*/例6.5:有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。程序如下: #include<stdio.h> voidmain() { inti,j,row=0,colum=0,max; inta[3][4]={{1,2,3,4},{9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; for(i