二維陣列
簡單地說就是具有兩個下標的陣列稱為二維陣列。
二維陣列的定義形式
儲存型別 型別說明符 陣列識別符號[常量表示式1] [常量表示式2]
例如:static int a[2][3],b[2][3];
char c[10][10];
a[2][3]在記憶體中想當與
0,00,10,2
1,01,1
1,2即[2][3]表示為2行3列。
以此類推[10][10]的陣列即表示為10行10列,即這樣乙個二維陣列中可以放10*10個元素。
說明:
0,0,0
0,0,1
0,0,2
0,1,0
0,1,1
0,1,2
即a[1][2][3]表示為:
1倍數行數2列數3(博主自己的理解)即有123個元素。
二維陣列元素的引用
二維陣列元素的引用格式:
陣列名[下標表示式1][下標表示式2]
說明:
static
int a[2]
[3],b[5]
[5];
char c[10]
[9];
a[2][
2]=123;b[
2][5
]=100;c[8
][8]
=a[2][
2]*2
+a[2][
1]/2
;c[5]
[5]=
'n';
從鍵盤上為二維陣列輸入值,一般要用雙重迴圈。
例如:
int i ,j;
int a[3]
[3];
for(i=
0;i<
3;i++
)}
例1.從鍵盤上為乙個5*5的整型陣列賦值,找出其中的最小值和最大值,並顯示出來。
#include
intmain()
}int max=a[0]
[0];
int min=a[0]
[0];
for(i=
0;i<
5;i++)}
printf
("max=%d,max=%d"
,min,max)
;}
二維陣列的初始化
二維陣列的賦值大概有兩個方法:
//陣列元素=常數
int i,j;
int a[5]
[5];
for(i=
0;i<
5;i++
)}
//scanf函式
int i,j;
int a[5]
[5];
for(i=
0;i<
5;i++
)}
static
int a[2]
[2]=,};
表示為 a[0][0]=1,a[0][1]=2,a[1][0]=2,a[1][1]=1
例2:
static
int a[2]
[2]=
;
所表達效果和例1基本相同
例1.從鍵盤上輸入5*5的陣列,並找到對角線最大值所在的位置
#include
intmain()
} max=a[0]
[0];
for(i=
0;j<
5;i++
)printf
("max=%d位置是%d"
,max,r)
;}
例2.將乙個二維陣列行列互換,存到另乙個陣列中
#include
intmain()
}int c,b;
c=0; b=0;
for(i=
0;i<=
2;i++)}
}
字元陣列用來存放字元資料的陣列稱為字元陣列,型別為char,同其他陣列一樣可以是一維陣列也可以為多維陣列。
字元陣列的定義
一維字元陣列格式為:
儲存型別 char 陣列識別符號[常量表示式]
例如:
static
char c[10]
,p[100
]
二維字元陣列格式如下:
儲存型別 char 陣列識別符號[常量表示式1][常量表示式2]
例如:
char a[1]
[3];
以此類推
字串及其結束標誌
字串所謂「字串」是指若干c語言規定的有效字串行,包括字母、數字、專用字元、轉義字元等。c中規定,字串是用雙引號括起來的字串行,也稱為字串常數。
例如:「china」,「wc」、「hust」等
2、字串結束標誌
例如:用字元陣列在螢幕上顯示hello word!!
#include
intmain()
;int i ;
for(i=
0;i<
12;i++
)}
其實上述**可以加以改進更加方便如:
#include
intmain()
;int i ;
for(i=
0;i<
12;i++
)}
char a=等價於char a=
字元陣列的輸入/輸出
字元陣列的輸入輸出有兩個種辦法
按字元逐個輸入輸出
按字串整個輸入輸出
#include
intmain()
for(i=
0;i<
20;i++
)}
2.對字元陣列整個字串輸入輸出
例如:
#include
intmain()
注意
static
char a[10]
=;printf
("%s"
,a);
則只能輸出tom三個字元,而不是10個。
#include
intmain()
}
常用的字串處理函式
輸出字串函式puts
格式為:puts(字元陣列名);
功能:輸出乙個以」\0「結尾的字串,在輸出時將」\0「轉換為」\n「,且輸出的字串中可以包含轉義字元。
例如:
char a=
;puts
(a);
2.輸入字串函式gets
格式: gets(字元陣列名);
功能:將輸入的字串內容存放到指定的字元陣列中
例如:
char a[10]
;gets
(a);
注意字串複製函式strcpy
格式: strcpy(字元陣列名,字串)
strcpy(字元陣列1,字元陣列2)
功能:將字串內容複製到字元陣列中。
例如:
char a[10]
;char b=
"china"
;strcpy
(a,"china");
char s[12]
;strcpy
(b,s)
;
注意字串比較函式strcmp
格式為:strcmp(字串名1,字串2)
功能:將兩個字串的對應字元自左向右逐個比較,直到出現不同字元或者遇到/0字元為止。比較結果由函式值帶回
說明:
char a[30]
,b[30];
gets
(a);
gets
(b);
p=strcmp
(a,b)
;
字串連線函式 strcat
格式:strcat (字元陣列名1,字元陣列名2);
功能:將字元陣列2的內容連線到字元陣列1的後面,並在最後麵加乙個「\0」,且將結果存放在字元陣列1中。
測字串長度函式strlen
格式:strlen(字元陣列);
strlen(字串);
static
char a[12]
="china"
;printf
("%d"
,strlen
(a))
;printf
("%d"
,strlen
("china"
);
初學C語言2 3 二維陣列
二維陣列的定義 型別 陣列名 常量表示式 常量表示式 int a 6 6 66,6行6列 char b 4 5 45,4行5列 double c 6 3 6 3,6行3列 二維陣列的訪問 陣列名 下標 下標 a 0 0 訪問a陣列中第1行第1列的元素 b 1 3 訪問b陣列中第2行第4列的元素 c ...
C語言 一維陣列與二維陣列
int arr 4 定義了乙個一維陣列,長度為4 說明以下三個分別是什麼型別 1 arr 型別為int 表示陣列元素首位址,即圖中箭頭指向的位置。2 arr 1 型別為int 表示陣列元素首位址 1,即圖中箭頭指向的位置。3 arr 0 型別為int 表示第乙個元素,即圖中紅色的格仔。int brr...
c語言 一維陣列與二維陣列(2)
今天覆習了陣列內容。包括一維陣列,二維陣列,字元陣列,字串等內容。形式就是int a 常量 可預設 氣泡排序 設陣列個數為n,則氣泡排序要比較n 1次 在某一次比較中。將其可以比較的最後乙個數與前面所有的數進行比較。最終將陣列全部比較,形成公升序或降序排列。include int main for ...