一,基礎知識
定義:陣列是有序的並且具有相同型別的資料的集合。
★一維陣列
1、一般形式:型別說明符陣列名[常量表示式];例如:int a[10]; 元素為a[0]----a[9].
a是首位址。
õ常量表示式中不允許包含變數,因為位址包含的是不變數,可以包含常量或符號常量。
●可以對陣列元素賦值,陣列元素也可以參與運算,與簡單變數一樣使用。
õ使用數值型陣列時,不可以一次引用整個陣列,只能逐個引用元素。(使用迴圈語句逐個取出)。
õ需要整體賦值時只可以在定義的同時整體賦值。如
int a[10]=;正確。
int a[10]; a[10]=;錯誤。
õ對全部陣列元素賦值時最好指定陣列長度。
注意:既不賦初值,也不指定長度是錯誤的。例如:int a;錯誤。
★二維陣列(可以看成是乙個數表)
õ一般形式:型別說明符陣列名[常量表示式1][常量表示式2];例如:
int a[3][4];可以看成是包含3個一維陣列,每個一維陣列裡包含4個元素。一共3*4=12個元素。
所有元素為a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
3、需要整體賦值時只可以在定義的同時整體賦值。例如:
int a[3][4]=,,};正確。
int a[3][4];a[3][4]=,,};錯誤。
4、可以把所有資料寫在乙個花括號內。例如:
int a[3][4]=;正確。
5、可以只對部分元素賦值。例如:
int a[3][4]=,,};其餘未賦值的元素預設為0。
int a[3][4]=,};可以看成是int a[3][4]=,,};
6、對全部陣列元素賦值時可以省略第一維長度,第二維不可以省略。例如:
a[3][4]=,,};
可以寫成a[4]=,,};
或者a[4]=;
字元陣列
1、定義:char a[10];字元陣列a長度為10。每個元素只能存放乙個字元。例如:
a[0]='h';a[1]='a';a[2]='p';……
2、初始化:
char a=;
★c語言中沒有字串變數,字串的輸入、儲存、處理和輸出等必須通過字元陣列實現。
4、字串的輸入。
scanf();可以用%c逐個字元輸入比如char a[6];for(i=0;i<6;i++) scanf("%c",&a[i]);
可以用%s以字串的形式輸入,比如char a[6];scanf("%s",a);注意,a前不用加&,因為a是陣列名,a就是位址,所以別加重了。
注意:以%s輸入時,以第乙個非空白字元開始,終止於第乙個空白字元。比如:輸入how are you時。只輸出how.,因為輸入時遇見空格就終止了。所以引出gets()函式的使用。
★gets();作用為輸入乙個字串。與scanf();功能一致,但空格和回車都存放在陣列中,最後自動加入『\0』.
不會出現上面輸出不全的情況。
呼叫方式為:gets(陣列名);需要包含標頭檔案「stdio.h」.
5、字串的輸出。
printf();可以使用%c逐個字元輸出,比如:char a[6];for(i=0;i<6;i++) printf("%c",a[i]);
可以用%s以字串的形式輸出,比如char a[6];printf("%s",a);
puts();輸出乙個字串,結尾自動換行。
呼叫形式:puts(字元陣列名或字串常量);需包含標頭檔案「stdio.h」
二,應用知識
將乙個陣列中的值按逆序重新存放。例如,原來的順序為8,6,5,4,1。要求改為1,4,5,6,8。
輸入輸入為兩行:第一行陣列中元素的個數n(1輸出
輸出為一行:輸出逆序後陣列的整數,每兩個整數之間用空格分隔。
#include
int main()
int t,n,a[110];
scanf("%d",&n);
for(int i=0;iscanf("%d",&a[i]);
for(int i=n-1;i>=0;i--)
printf("%d",a[i]);
printf(" ");
return 0;
★輸入陣列時使用迴圈結構
★倒序輸出時從前到後輸出,而不要從前到後乙個個賦值
應用二:開關門問題,種樹問題,
屬於測試問題,巧妙利用零和一。
應用三:利用字串陣列判斷有幾個單詞。
三、感想感悟
陣列使數多的問題化簡,並且解決了字元陣列問題。
shell程式設計 陣列
1 定義陣列 通過指定元素值來定義陣列 array key value eg.array 1 one array 3 three shell中的陣列的下標 索引 從0開始 也可以通過declare語句定義陣列 declare a array 沒必要,在shell中,所有的變數都不必顯式定義就可以用作...
Shell程式設計 陣列
1.4 求陣列最大值 1.5 示例 1.6 陣列的操作 1.7 shell指令碼除錯 1.3.1 陣列包括的資料型別 陣列只可存放數值或字元 1.3.2 陣列操作第一種方法每個元素和他後面的元素挨個比 大的放後面 root shell shuzu vimshuzu paixu.sh bin bash...
HNU 程式設計 陣列
問題描述 某班有 n 個學生,下課鈴一響,大家都去飲水機喝水,沒有兩個人能同時使用飲水機,因此,同學們必須排隊取水。第 i 個學生在第 li 秒來到隊尾,如果同一時刻有多個學生來到隊伍,則編號大的排在編號小的後面,排在隊伍最前面的學生將花1秒的時間取水,然後離開,其他人在後面排隊。如果到第 ri 秒...