1. 程式人生 > >7-5 交換最小值和最大值(15 分)

7-5 交換最小值和最大值(15 分)

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