5.1.4 维数组的简单应用 ART History 例5-6用二分查找法找一个数是否在一个有序的数组中。 #include "stdio.h" main() int key,mid,low,high; inta0={15,34,48,56,65} printf"输入待查数据n"): scanf("%d",&key); low=0,high=4: while(low<-high) mid=(low+high)/2: if(key==a[mid]) {printf"此数在数组中出现的位置为%dn",mid), break; else if(key<a[mid]) high=mid-1; else low=mid+1: if(low心high)printf"此数不在数组中n");}
5.1.4 一维数组的简单应用 例5-6 用二分查找法找一个数是否在一个有序的数组中。 #include "stdio.h" main( ) { int key,mid,low,high; int a[]={15,34,48,56,65}; printf("输入待查数据:\n"); scanf("%d",&key); low=0,high=4; while(low<=high) { mid=(low+high)/2; if(key==a[mid]) { printf("此数在数组中出现的位置为%d\n",mid); break; } else if(key<a[mid]) high=mid-1; else low=mid+1; } if(low>high) printf("此数不在数组中\n"); }
5.2二维数组 5.2.1二维数组的定义和引用 5.2.2二维数组的输出 5.2.3符号常量
5.2 二维数组 5.2.1 二维数组的定义和引用 5.2.2 二维数组的输出 5.2.3 符号常量
5.2.1二维数组的定义和引用 ART History 1、二维数组的定义 类型标识符数组名第1维的长度[第2维的长度] 例:inta[2][3]; 说明: ①可以把二维数组看作是一种特殊的一维数组 a[oja[0][0]a[0][1] a[0][2] a1a[1][0]a[1][1]a[1][2] ②二维数组在内存中按行存放 a[0][0] a[0][2] a[1][1] a[0][1] a[1][0] a[1][2]
5.2.1 二维数组的定义和引用 1、二维数组的定义 类型标识符 数组名[第1维的长度][第2维的长度] 例:int a[2][3]; 说明: ① 可以把二维数组看作是一种特殊的一维数组 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] ② 二维数组在内存中按行存放 a[0][0] a[0][2] a[1][1] a[0][1] a[1][0] a[1][2] a[0] a[1]
5.2.1二维数组的定义和引用 History 2、二维数组的引用 数组名[下标][下标) 3、二维数组的初始化 inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12: inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12: inta[3][4]={1,5,{9; inta[3][3]={1,0,3,4,0,0,0,8,0i inta[][3]={1,0,3,4,0,0,0,8,0i inta[][3]={1,0,3},{4,{0,8}
5.2.1 二维数组的定义和引用 2、二维数组的引用 数组名[下标][下标] 3、二维数组的初始化 int a[3][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int a[3][4]={{1}, {5}, {9}}; int a[3][3]={1, 0, 3, 4, 0, 0, 0, 8, 0}; int a[ ][3]={1, 0, 3, 4, 0, 0, 0, 8, 0}; int a[ ][3]={{1, 0, 3}, {4}, {0, 8}}
5.2.2二维数组的输出 History 例5-7将一个3行3列的矩阵转置后输出。 #include "stdio.h" for(i=0:i<3;i++) mainO) for(j=0;j<3;j++) int a[3][3],i,j,t,k=1; printf("4d",a[i]]) for(i=0;i<3;i++) printf("\n"), for(j-0;j<3;j++) a[i][j]=k++; printf("原矩阵为n"): for(i=0,i<3;i++) 原矩阵为: {for(j=0;j<3;j++) printf("%4d",a[i]j]); 123 456 printf("\n"), 789 for(i=0:i<3;i++) 转置后的矩阵为: for(j=0;j<i,j++) 147 (t=a[i][];a[i]]a[il[i];a[i][i]=t;) 258 printf("转置后的矩阵为n")方 369
5.2.2 二维数组的输出 #include "stdio.h" main() { int a[3][3],i,j,t,k=1; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=k++; printf("原矩阵为:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\n"); } for(i=0;i<3;i++) for(j=0;j<i;j++) {t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;} printf("转置后的矩阵为:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\n"); } } 原矩阵为: 1 2 3 4 5 6 7 8 9 转置后的矩阵为: 1 4 7 2 5 8 3 6 9 例5-7 将一个3行3列的矩阵转置后输出