題目描述
有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。 分別編寫兩個函式minindex()和maxindex()來計算最小值下標和最大值下標。
intminindex(int a, int n); //函式返回陣列a中最小元素的下標
intmaxindex(int a, int n); //函式返回陣列a中最大元素的下標
陣列元素的輸出呼叫函式printarr()。
輸入
輸入包括兩行。
第一行為正整數n(1≤n≤10)。
第二行為n個正整數組成的序列,保證沒有重複元素。
輸出
輸出轉換好的序列。資料之間用空格隔開。
樣例輸入
55 4 1 2 3
樣例輸出
1 4 3 2 5
(c語言)
#include
intminlndex
(int a,
int n)
}return min1;
}//函式返回陣列a中最小元素的下標
intmaxlndex
(int a,
int n)
}return max1;
}//函式返回陣列a中最大元素的下標
void
printarr
(int a,
int n)
}//輸出陣列元素
intmain()
int min=
intminlndex
(a,n)
;//1*
t=a[0]
; a[0]
=a[min]
; a[min]
=t;int max=
intmaxlndex
(a,n)
;//2*
k=a[n-1]
; a[n-1]
=a[max]
; a[max]
=k;printarr
(a,n)
;return0;
}
迷惑行為
之1 * 、2* 兩行放在一起
結果清奇
原因:題目要求「先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換」。
樣例輸入 5 4 1 2 3
則min=2 、 max=0;
呼叫函式minindex()後,實現了把序列中的最小值與第乙個數交換,此時max=2,如果按照1*、2*放在一起進行操作,max一直都是0。
1120 最值交換
有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。分別編寫兩個函式minindex 和maxindex 來計算最小值下標和最大值下標。int minindex int a,int n 函式返回陣列a中最小元素的下標 int max...
ZZULIOJ 1120 最值交換
有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。分別編寫兩個函式minindex 和maxindex 來計算最小值下標和最大值下標。intminindex int a,int n 函式返回陣列a中最小元素的下標 intmaxin...
zzuliioj 1120 最值交換
題目描述 有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。分別編寫兩個函式minindex 和maxindex 來計算最小值下標和最大值下標。int minindex int a,int n 函式返回陣列a中最小元素的下標 in...