ZZILIOJ 1120 最值交換

2021-10-02 19:25:14 字數 1445 閱讀 8726

題目描述

有乙個長度為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...