数组的程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

854290
854209
❖ for(i=1;i<=10-j;i++) ❖ if(a[i]>a[i+1]) ❖ {t=a[i];a[i]=a[i+1];a[i+1]=t;}
❖ printf(“the sorted numbers:\n”);
❖ for(i=1;i<11;i++)
❖于是:如果有n个数,则要进行n-1 趟比较;在j趟比较中要进行n-j次两 两比较。 ❖设n=10,为符合人们习惯,定义数 组长度为11,程序如下:
❖ 3,5,-1,6,0,1,2,12,-5
❖ -5,5,-1,6,0,1,2,12,3
❖ -5,-1,5,6,0,1,2,12,3

……
❖于是:如有n个数,则要进行n-1趟 比较,第i趟中a[i]与其后逐个相比, 将最小值与a[i]将换。(程序自已完 成)
第三节 二维数组 ❖一、定义
❖a[0][0][0] a[0][0][1] a[0][0][2]
❖3、部分初始化
❖static int a[3][4]={{1},{5},{9}};
15 00 00 00 9000
10 06 00 00 0090
ssttaattiicc iinntt aa[[33]][[44]]=={{{{11}},,{{05,,66}},}{;0,0,9}};
二维数组 ❖4、如果全部初始化,定义时 第一维长度可以省略,但不可 省略第二维长度。
❖ f[i]=f[i-2]+f[i-1];
❖ static int a[5]={0,1};
❖ for(i=0;i<20;i++)
❖ 则:a[0]=0,a[1]=1,其余全为0。
❖ {if(i%5==0) printf(“\n”);
❖3、全部初始化为0
❖ printf(“%12d”,f[i]);
❖ static int a[5]={0,Hale Waihona Puke Baidu,0,0,0};
❖ 下标:常量、变量、表达式(整 型)
❖ 如:a[3],a[3+2],a[i](i为整型) ❖例:main()
❖如上例中有十个元素:a[0]……a[9]
❖ {int i,a[10];
❖ ⑷[]内一定为常量,不能包含变量, ❖
即不能动态定义数组的长度。如:

for(i=0;i<=9;i++) a[i]=i;
❖a[1][2][1] a[1][2][2] a[1][2][3]
❖ a[2][0] a[2][1] a[2][2] a[2][3] ❖故:二维数组a可看作是三个一维
❖二、引用
数组,即相当于
❖元素形式:数组名[下标][下标]
❖ float a[0][4],a[1][4],a[2][4];
❖2、内存中的存放:按行存放

❖1、全部初始化
❖ main()
❖ static int a[5]={0,1,2,3,4};
❖ {int i;
❖ 则:a[0]=0,a[1]=1,……a[4]=4。 ❖ static int f[20]={1,1};
❖注意:static表示“静态存储”
❖ for(i=2;i<=19;i++)
❖2、部分初始化
第一节 数组程序的概念
❖ 一、数组的基本概念
❖ 数组:就是确定了顺序的相同数据类型数据的集合。 ❖ 数组元素:组成数组的各个变量 ❖ 数组的维:数组名后[]的个数 ❖ 如:a[1],b[2][3],c[1][2][3]
❖ 二、数组解决的问题
❖ 在许多情况下,程序要考虑一组数据的集合,数组 是程序用来处理成组出现的同一类相关数据的有效 工具。
❖ main()
❖ {int a[11],i,j,t;
❖ printf(“input 10 numbers:\n”);
❖ for(i=1;i<11;i++)
❖ scanf(“%d”,&a[i]);
❖ for(j=1;j<10;j++)
❖ printf(“%d ”,a[i]); }
❖3、选择法排序
❖ 思路:每趟从未经排序的数中找 出最小的数,与该趟的第一个数对换。
❖}
❖ 或:static int a[5];
❖}
❖4、全部初始化时,数组长度可省 略。
❖2、用起泡法对10个数排序(由小 到大)
❖ static int a[]={0,1,2,3,4};
❖思路:将相邻两个数比较,将小的 调到前头(如图)。
985420
895420
第二节 一维数组 859420
854920
❖1、定义形式: ❖ 类型 数组名[常量1][常量2]
❖a[0][0][3] a[0][1][0] a[0][1][1] ❖a[0][1][2] a[0][1][3] a[0][2][0] ❖a[0][2][1] a[0][2][2] a[0][2][3]
❖ 例:float a[3][4],b[4][6];
第二节 一维数组 ❖一、定义
❖形式:
❖二、引用
❖ C语言规定,对数值型数组,只
❖ 类型说明符 数组名[常量表达式]; 能逐个引用数组元素。
❖例:int a[10];
❖ 数组元素:数组名[下标]
❖说明:⑴数组名用标识符表示。
❖ ⑵数组名代表该数组的首地址。
❖ ⑶[]内的常量表达式代表数组的 长度,不代表最大下标。
❖ int n;
❖ for(i=9;i>=0;i--)
❖ scanf(“%d”,&n); ❖ int a[n]; →错误
❖ printf(“%d ”,a[i]); }

❖三、初始化第二节 一❖四维、程数序组举例
❖概念:在编译时,使数组得到初值。 ❖1、用数组求Fibonacci数列的前20
❖方法:
❖a[1][0][0] a[1][0][1] a[1][0][2]
❖ 数组a用12个元素:
❖a[1][0][3] a[1][1][0] a[1][1][1]
❖ a[0][0] a[0][1] a[0][2] a[0][3]
❖a[1][1][2] a[1][1][3] a[1][2][0]
❖ a[1][0] a[1][1] a[1][2] a[1][3]
❖ 对多维数组:以最右边的下标先 变化为规律,如有:int a[2][3][4];
❖注意:下标的范围
❖三、初始化
❖ 1、分行初始化
❖则:
❖static int a[2][3]={{1,2,3},{4,5,6}};
第三节 ❖2、不分行
❖static int a[2][3]={1,2,3,4,5,6};
相关文档
最新文档