7-5 交換最小值和最大值(15 分)
阿新 • • 發佈:2019-01-04
7-5 交換最小值和最大值(15 分)
本題要求編寫程式,先將輸入的一系列整數中的最小值與第一個數交換,然後將最大值與最後一個數交換,最後輸出交換後的序列。
注意:題目保證最大和最小值都是唯一的。
輸入格式:
輸入在第一行中給出一個正整數N(≤10),第二行給出N個整數,數字間以空格分隔。
輸出格式:
在一行中順序輸出交換後的序列,每個整數後跟一個空格。
輸入樣例:
5
8 2 5 1 4
輸出樣例:
1 2 5 4 8
#include <stdio.h> main() { int i, j = 0, k = 0, t, n, min, max, a[10]; scanf("%d", &n); if (n == 2) { scanf("%d %d", &a[0],&a[1]); for (i = 1; i > -1; i--) printf("%d ",a[i]); } else{ scanf("%d", &a[0]); max = a[0]; min = a[0]; for (i = 1; i < n; i++) { scanf("%d", &a[i]); if (max<a[i]) { max = a[i]; j = i; } if (min>a[i]) { min = a[i]; k = i; } } t = a[k]; a[k] = a[0]; a[0] = t; t = a[j]; a[j] = a[n - 1]; a[n - 1] = t; for (i = 0; i < n; i++) printf("%d ", a[i]); } }
作者: C課程組 單位: 浙江大學 時間限制: 400ms 記憶體限制: 64MB 程式碼長度限制: 16KB