實驗7 1 10 交換最小值和最大值 (15 分)

2021-09-02 11:10:37 字數 1718 閱讀 9454

實驗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個整數,數字間以空格分隔。輸出格式 在一行中順序輸出交換後的序列,每個整數後跟乙個空格...