一.陣列介紹
陣列:一組具體相同型別的元素的集合
陣列變數的定義:通過[ ]來表明申請元素的個數
例如:
(1)求陣列大小
int main()
(2)一維陣列初始化
1、全部初始化 使用
int a[5] = ;
2、部分初始化,只初始化陣列的前半部分,後面自動為0
int b[5] = ; //b[0] = 1, b[1] = 2,b[2] = 3 ,b[3] = 0,b[4] = 0
3、如果是全部初始化,陣列的個數可以不用寫,系統會自動推到
int c = ; // c的長度自動就是5
printf ("c 的個數: %lu\n", sizeof(c)/sizeof(c[0]));
4、將陣列元素全部設為0
int d[10] = ;
int i = 0;
for (i = 0; i < 5; i++)
二.陣列使用
(1)求最大元素的值
int main()
; int len = sizeof(a)/sizeof(a[0]);
int max = a[0];
int i;
for (i = 1; i < len; i++)
printf ("max = %d\n", max);
return 0;
}
(2)求最小元素的值和其對應的下標
int main()
; int len = sizeof(a)/sizeof(a[0]);
int index = 0;
int i;
for (i = 1; i < len; i++)
printf ("min = %d, index = %d\n", a[index], index);
return 0;
}
(3)求奇數和
int main()
; int len = sizeof(a)/sizeof(a[0]);
int sum = 0;
int i;
for (i = 0; i < len; i++)
printf ("sum = %d\n", sum);
return 0;
}
(4)陣列逆序
int main()
; int len = sizeof(a)/sizeof(a[0]);
int left = 0;
int right = len - 1;
while (left < right)
int i;
for (i = 0; i < len; i++)
printf ("\n");
return 0;
}
(5)陣列中所有數都是成對出現,只有兩個數隻出現一次,找出這兩個數
int main()
; int len = sizeof(a)/sizeof(int);
int num = 0;
int num1 = 0;
int num2 = 0;
方法1:兩個數的異或結果
int i = 0;
for (i = 0; i < len; i++)
方法2:從右往左找第乙個不為 0 的位
int count = 1;
while (1)
num = num >> 1;
count++;
}
方法3:分組異或
for (i = 0; i < len; i++)
printf ("num1 = %d\n", num1);
printf ("num2 = %d\n", num2);
return 0;
}
(6)統計0-100以內0–9的個數
int main();
int i = 0;
for (i = 0; i <= n; i++) }
for (i = 0; i < 10; i++)
return 0;
}
(7)統計有限個小寫字母的個數
int main();
char c;
while(c != '\n')
char i = 0;
for (i = 'a'; i <= 'z'; i++)
return 0;
}
三.陣列名
注意:陣列首個元素的位址和陣列的位址是兩回事,&a[0]和&a值是相同的,都是意義不同。
(1)陣列名作為函式引數傳遞,實際上傳遞的是陣列首個元素的位址
(2)我們不能根據陣列指標來計算陣列元素個數,傳參的時候要加上陣列的長度
(3)陣列形參的寫法:
1、int *pa
2、int pa[10] ===> 括號內的數字是無效的,一般情況下都是不寫的,pa不是乙個陣列,還是指標
例如:列印陣列
// void print(int *pa, int len)
void print(int pa[100000000], int len) //注意此時pa[ ]裡面的數是沒有意義的
}int main()
; print(a, 10);
return 0;
}
c語言陣列
陣列 構造資料型別之一 陣列是具有一定順序關係的若干個變數的集合,組成陣列的各個變數稱為陣列的元素。陣列中各元素的資料型別要求相同,用陣列名和下標確定。陣列可以是一維的,也可以是多維的。在科學計算中,許多重要的應用都是基於陣列的。所謂一維陣列是指只有乙個下標的陣列。它在計算機的記憶體中是連續儲存的。...
C語言陣列
在變數作函式引數時,所進行的值傳送是單向的。即只能從實參傳向形參,不能從形參傳回實參。形參的初值和實參相同,而形參的值發生改變後,實參並不變化,兩者的終值是不同的。而當用陣列名作函式引數時,情況則不同。由於實際上形參和實參為同一陣列,因此當形引數組發生變化時,實參陣列也隨之變化。當然這種情況不能理解...
C語言 陣列
陣列 void test1 for int i 0 i 5 i for int i 0 i 5 i 陣列資料倒序存放 void test2 printf 請輸入5個學生的成績 n for int i 4 i 0 i printf 輸出5個學生的成績 n for int i 0 i 5 i 將陣列的長...