1.二維數組的定義和引用數組
一. 數據類型 數組名[常量表達式1][常量表達式2];spa
(1)假若有個二維數組array[n][m],則行下標的取值範圍0~n-1code
(2)列下標的取值範圍0~m-1blog
(3)二維數組的最大下標元素是array[n-1][m-1];排序
假若有一個數組array[3][4];則其下標變量爲 array[0][0],array[0][1],array[0][2],array[0][3],array[1][0],array[1][1],array[1][2],array[1][3],array[2][0],array[2][1],array[2][2],array[2][3]input
二.二維數組的引用io
數組名[下標][下標];class
array[1][2]變量
2.二維數組初始化循環
(1)能夠將全部數據寫在一個大括號內,按照數組元素排序對元素賦值。int array[2][2]={1,2,3,4};
(2)在爲全部元素賦初值時,也能夠省略行下標,可是不能省略列下標。int array[][3]={1,2,3,4,5,6};
(3)也能夠分行給數組元素賦值。 int a[2][3]={{1,2,3},{4,5,6}}; a[0][0]=1;a[0][1]=2;a[0][2]=3...
在分行賦值時,能夠只對部分元素賦值。int a[2][3]={{1,2},{4,5}};a[0][0]=1;a[0][1]=2;a[0][2]=0;a[1][0]=4;a[1][1]=5;a[1][2]=0;
(4)二維數組也能夠直接對數組元素賦值。int a[2][3]; a[0][0]=1;
#include<stdio.h> /*任意輸入一個三行三列的二維數組,求對角元素之和*/ int main() { int a[3][3];/*定義一個三行三列的數組*/ int i,j,sum=0; /*定義循環控制變量好保存數據變量sum*/ printf("please input:\n"); /*利用循環數組對數組元素進行輸入*/ for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } /*利用循環數組對對角線對其求和*/ for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(i==j) { sum=sum+a[i][j]; } } } printf("the result is : %d\n",sum); /*輸出最後的結果*/ return 0; }
3.二維數組應用
#include<stdio.h> int main() { int a[2][3],b[3][2]; /*定義兩個數組*/ int max,min;/*表示最大值和最小值*/ int h,l,i,j;/*用於循環控制*/ for(i=0;i<2;i++) /*經過鍵盤爲數組元素賦值*/ { for(j=0;j<3;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } printf("輸出二維數組:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("%d\t",a[i][j]);/*使元素分行顯示*/ } printf("\n"); } /*求數組中最大元素及其下標*/ max=a[0][0]; h=0; l=0; for(i=0;i<2;i++) { for(j=0;j<3;j++) { if(max<a[i][j]) { max=a[i][j]; h=i; l=j; } } } printf("數組中最大元素是:\n"); printf("max:a[%d][%d]=%d\n",h,l,max); /*求數組中最小元素及其下標*/ min=a[0][0]; h=0; l=0; for(i=0;i<2;i++) { for(j=0;j<3;j++) { if(min>a[i][j]) { min=a[i][j]; h=i; l=j; } } } printf("數組中最小元素是:\n"); printf("min:a[%d][%d]=%d\n",h,l,min); /*將數組a轉換後存入數組b中*/ for(i=0;i<2;i++) { for(j=0;j<3;j++) { b[j][i]=a[i][j]; } } printf("輸出轉換後的二維數組:\n"); for(i=0;i<3;i++) { for(j=0;j<2;j++) { printf("%d\t",b[i][j]); } printf("\n"); /*使元素分行顯示*/ } return 0; }