程式設計 陣列

2021-09-05 09:47:16 字數 2345 閱讀 1288

一,基礎知識

定義:陣列是有序的並且具有相同型別的資料的集合。

★一維陣列

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 秒...