-维数组的初始化一为了使程序简洁,常在定义数组的同时给各数组元素赋值,这称为数组的初始化。(1)在定义数组时对全部数组元素赋予初值。inta[10]=0,1,2,3.4,5,6,7.8,9]将数组中各元素的初值顺序放在一对花括号内,数据间用逗号分隔。花括号内的数据就称为、初始化列表"(2)int a[10]={0,1,2,3,4];定义a数组有10个元素,但花括号内只提供5个初值,这表示只给前面5个元素赋初值,系统自动给后5个元素赋初值为0。3或int a[10]=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0];int a[10]={0];/未赋值的部分元素自动设定为0卡度。(4)居的全数日或int a[5]=[1,2,3.4,5];int a[]={1,2,3,4,5];但是,如果数组长度与提供初值的则方括号中的数组长度不能省略。教不相
一维数组的初始化 (1) 在定义数组时对全部数组元素赋予初值。 将数组中各元素的初值顺序放在一对花括号内,数据间用逗号分隔。花括号内的数据就称为 “初始化列 表”。 (2) 可以只给数组中的一部分元素赋值。 定义a数组有10个元素,但花括号内只提供5个初值,这表示只给前面5个元素赋初值,系统自动给后5个元 素赋初值为0。 (3) 给数组中全部元素赋初值为0。 (4) 在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。 但是,如果数组长度与提供初值的个数不相同,则方括号中的数组长度不能省略。 为了使程序简洁,常在定义数组的同时给各数组元素赋值,这称为数组的初始化。 int a[10]={0,1,2,3,4,5,6,7,8,9}; int a[10]={0,1,2,3,4}; int a[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 或 int a[10]={0}; //未赋值的部分元素自动设定为0 int a[5]={1,2,3,4,5}; 或 int a[ ]={1,2,3,4,5};
维数组程序举例【例6.2】用数组来处理求Fibonacci数列问题#include<stdio.h>int main()1int i;int f[20]={1.1]1/对最前面两个元素[0]和f[1]赋初值1for(i=2;i<20;i++)1/先后求出f[2]-f[19]的值f[]=f[i-2]+f[{i- 1]for(i=0;i<20;i++)if(i%5==0)printf(\n")://控制每输出5个数后换行1/输出一个数printf("%12d".f[]);1OC:IWINDOWSlsystem32/cmd.exeXprintf("\n"):352return 0;21551334144233610893772584987676515974181请按任意键继续
一维数组程序举例 【例6.2】用数组来处理求Fibonacci数列问题。 #include <stdio.h> int main() { int i; int f[20]={1,1}; //对最前面两个元素f[0]和f[1]赋初值1 for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; //先后求出f[2]~f[19]的值 for(i=0;i<20;i++) { if(i%5==0) printf("\n"); //控制每输出5个数后换行 printf("%12d",f[i]); //输出一个数 } printf("\n"); return 0; }
算法?起泡排序法维数组程序举例【例6.3】有10个地区的面积,要求对它们按由小到大的顺序排列。985420第一趟
一维数组程序举例 【例6.3】有10个地区的面积,要求对它们按由小到大的顺序排列。 9 8 5 4 2 0 8 5 4 2 0 9 5 4 2 0 8 9 4 2 0 5 8 9 2 0 4 5 8 9 第一趟 第二趟 第三趟 第四趟 第五趟
维数组程序举例【例6.3】有10个地区的面积,要求对它们按由小到大的顺序排列#include<stdio.h>输入10个数给a[0]~a[9]int main()j由0变到8共执行9次循环int a[10]:进行9-次比较int ij.t;真a>a[+1]假printf("input 10 numbers :In"):for (i=0;i<10;i++)a与a[+1]交换scanf("%d"&a):printf("n"):输出a[0]~a[9]for(j=0;j<9;j++)//进行9次循环,实现9趟比较for(i=0;i<9-j:i++)//在每一趟中进行9-j次比较if(a[]>a[i+1])//相邻两个数比较口C:WINDOWSsystem32/cmd.exeX[t=a[]:a[]=a[+1]:a[+1]=t:]input10mumberprintf("the sorted numbers :/n"):3467904312487659913226for(i=0;i<10;i++)sortednuumbersprintf("%d ",a[0]):634436567879099124132按任意键继续printf("\n"):return 0;
一维数组程序举例 【例6.3】有10个地区的面积,要求对它们按由小到大的顺序排列。 #include <stdio.h> int main() { int a[10]; int i,j,t; printf("input 10 numbers :\n"); for (i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) //进行9次循环,实现9趟比较 for(i=0;i<9-j;i++) //在每一趟中进行9-j次比较 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=0;i<10;i++) printf("%d ",a[i]); printf("\n"); return 0; } 输入10个数给a[0]~a[9] j由0变到8共执行9次循环 进行9-j次比较 真 假 a[i]与a[i+1] 交换 输出a[0]~a[9] a[i]>a[i+1]
定义和引用二维数组小例子队员1队员2队员3队员4队员5队员6有3个小分队,每队有6名队员,第1分队245618471243160023462757要把这些队员的工资用数组保第2分队304520181725202024581436存起来以备查。第3分队142711751046197614772018如果建立一个数组pay,它应当是二维的,第一维用来表示第几分队,第二维用来表示第几个队员。例如用pay23表示2分队第3名队员的工资,它的值是1725。二维数组常称为矩阵(matrix)。把二维数组写成行(row)和列(column)的排列形式,可以有助于形象化地理解二维数组的逻辑结构
定义和引用二维数组 有3个小分队,每队有6名队员, 要把这些队员的工资用数组保 存起来以备查。 小例子 队员1 队员2 队员3 队员4 队员5 队员6 第1分队 2456 1847 1243 1600 2346 2757 第2分队 3045 2018 1725 2020 2458 1436 第3分队 1427 1175 1046 1976 1477 2018 如果建立一个数组pay,它应当是二维的,第一维用来表示第几分队,第二维用来表示第几个 队员。例如用pay2,3表示2分队第3名队员的工资,它的值是1725。 二维数组常称为矩阵(matrix)。把二维数组写成行(row)和列(column)的排列形式,可以有助于形 象化地理解二维数组的逻辑结构