首先,需要建立乙個陣列
int n;
printf
("請輸入陣列長度:\n");
scanf
("%d"
,&n)
;int a[n]
;printf
("請輸入陣列元素:\n");
for(
int i =
0; i < n; i++
)
其中要**注意一件事情,定義陣列不能**寫成
int n,a[n]
;//這裡是錯誤的定義
printf
("請輸入陣列長度:\n");
scanf
("%d"
,&n)
;printf
("請輸入陣列元素:\n");
for(
int i =
0; i < n; i++
)
為什麼?
因為這樣定義陣列a申請的空間是n,但是此時n未輸入,一般預設為0,意味著陣列a申請了0個空間,這樣即使在執行時發現可以執行甚至可以建立陣列,但是你的陣列占用的空間是非法的,如果別的陣列申請空間,是可以占用你存資料的位置的,所以不要這樣定義。
在你建立完了之後,可以遍歷輸出看看你建立的是否正確
printf
("您輸入的陣列為:\n");
for(
int i =
0; i < n; i++
)
第一種方法:
int
max(
int* a,
int n)
//最大值
}return a[0]
;}intmin
(int
* a,
int n)
//最小值
}return a[0]
;}
第二種方法
void
max_min
(int a,
int n,
int* pmax,
int* pmin)
}
利用指標指向最大值和最小值。
在這裡說一下指標與陣列
1)在函式引數表中的陣列實際上是指標
2)以陣列為引數的以下幾個函式原型是等價的
1. int sum(int *a,int n);
2. int sum(int *,int );
3. int sum(int a,int n);
4. int sum(int ,int );
3)陣列變數是特殊的指標
陣列本身表達位址,所以int a[10]; int *p = a
無需用&符取位址,但是陣列單元表達的是變數,需要用&取位址a ==a[0];
運算子可以對陣列做,也可以對指標做
*運算子可以對指標做,也可以對陣列做
p[0]
<=
=>a[0]
*a =
20;
陣列變數是const 的指標,不能被賦值。 分治演算法(一) 》陣列中的最小值最大值
問題 程式設計之美 page166.尋找陣列中的最大值,最小值。public class minmax int result find array system.out.println min is result 0 max is result 1 result merge array,0,arra...
python陣列求最大值最小值
剛剛面試被問到不用max函式怎麼求最大值,記錄一下 a 1 3,5 7,4 4,3 1,0 第一種方法 我們可以直接排序,取最後乙個 a.sort reverse false print a 1 第二種 我們定義第乙個元素 然後for迴圈比較 max num a 0 for i in range l...
無序陣列中求最大值最小值
要求比較次數小於2n。最直接的做法,比較次數為2n include using namespace std int main cout min val max val endl return 0 如果要減少比較次數,應該怎麼做呢?當某個元素比較大元素大的時候,就不必再與較小元素比較了 int mai...