實驗7-1-10 交換最小值和最大值 (15 分)
本題要求編寫程式,先將輸入的一系列整數中的最小值與第乙個數交換,然後將最大值與最後乙個數交換,最後輸出交換後的序列。
注意:題目保證最大和最小值都是唯一的。
輸入格式:
輸入在第一行中給出乙個正整數n(≤10),第二行給出n個整數,數字間以空格分隔。
輸出格式:
在一行中順序輸出交換後的序列,每個整數後跟乙個空格。
輸入樣例:
582
514
輸出樣例:
125
48
**如下
#include
intmain()
int min=0;
/*先假設min值下標為0*/
for(i=
1;i)/*通過上面語句找出最小值a[min]*/
t=a[0]
;/*把陣列的第一值啊a[0]賦值於t*/
a[0]=a[min]
;/*再把最小值啊a[min]賦值於a[0],這樣第乙個數就是最小值啦*/
a[min]
=t;/*然後在把之前存放在t的陣列第乙個值賦值與a[min]*/
/*通過上面的三條語句就實現交換啦*/
int max=0;
for(i=
1;i) t=a[n-1]
; a[n-1]
=a[max]
; a[max]
=t;/*關於最大值交換同上*/
for(i=
0;i)return0;
}
改進版本,一次迴圈解決,時間複雜度o(n)。
#include
intmain()
int min=0;
/*先假設min值下標為0*/
int max=0;
for(i=
1;i) t=a[0]
; a[0]
=a[min]
; a[min]
=t;if
(max==0)
t=a[n-1]
; a[n-1]
=a[max]
; a[max]
=t;for
(i=0
;i)return0;
}
改進版改進版哈哈,如果不算輸出陣列迴圈,時間複雜度為o(1)。不過沒提交pta,可能會存在bug。
#include
intmain()
if(a[i]
>a[max_index])}
t=a[0]
; a[0]
=a[min_index]
; a[min_index]
=t;if
(max_index==0)
t=a[n-1]
; a[n-1]
=a[max_index]
; a[max_index]
=t;for
(i=0
;i)return0;
}
交換最小值和最大值
本題要求編寫程式,先將輸入的一系列整數中的最小值與第乙個數交換,然後將最大值與最後乙個數交換,最後輸出交換後的序列。注意 題目保證最大和最小值都是唯一的。輸入格式 輸入在第一行中給出乙個正整數n 10 第二行給出n個整數,數字間以空格分隔。輸出格式 在一行中順序輸出交換後的序列,每個整數後跟乙個空格...
交換最小值和最大值
此題使用函式做法 7 4 交換最小值和最大值 15分 本題要求編寫程式,先將輸入的一系列整數中的最小值與第乙個數交換,然後將最大值與最後乙個數交換,最後輸出交換後的序列。注意 題目保證最大和最小值都是唯一的。輸入格式 輸入在第一行中給出乙個正整數n 10 第二行給出n個整數,數字間以空格分隔。輸出格...
PTA 交換最小值和最大值
本題要求編寫程式,先將輸入的一系列整數中的最小值與第乙個數交換,然後將最大值與最後乙個數交換,最後輸出交換後的序列。注意 題目保證最大和最小值都是唯一的。輸入格式 輸入在第一行中給出乙個正整數n 10 第二行給出n個整數,數字間以空格分隔。輸出格式 在一行中順序輸出交換後的序列,每個整數後跟乙個空格...