1. 程式人生 > >PTA-交換最小值和最大值

PTA-交換最小值和最大值

交換最小值和最大值(10 分)

本題要求編寫程式,先將輸入的一系列整數中的最小值與第一個數交換,然後將最大值與最後一個數交換,最後輸出交換後的序列。

注意:題目保證最大和最小值都是唯一的。

輸入格式:

輸入在第一行中給出一個正整數N(10),第二行給出N個整數,數字間以空格分隔。

輸出格式:

在一行中順序輸出交換後的序列,每個整數後跟一個空格。

輸入樣例:

5
8 2 5 1 4

輸出樣例:

1 2 5 4 8
#include <stdio.h>


int main(void) { 
    int n, max, min, i, j, t; 
int p, q; 
    int a[10];
    scanf ("%d", &n);
  
    for (i = 0; i < n; ++i)
    {
        scanf("%d", a + i);//輸入序列 
    }
    
    min = a[0];//求最小值 
    for (i = 1; i < n; ++i)
    {
        if (a[i] < min){
        min = a[i];
q = i;
//需注意  }      }     if (min != a[0]) {     t = a[0];    a[0] = a[q];//將最小值與第一個數交換     a[q] = t; }       max = a[0];//求最大值      for (j = 1; j < n; ++j)     {         if (a[j] > max){         max = a[j]; p = j;//需注意  }      }      if (max != a[n - 1]){     t = a[n - 1];    a[n - 1] = a[p];//將最大值與最後一個數交換    a[p] = t; }          for (i = 0; i < n; ++i)     {     printf ("%d ", a[i]);//輸出排序後的序列  }       return 0; }