题目描述
有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
输入
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
输出
输出转换好的序列。数据之间用空格隔开。
样例输入 Copy
6 2 3 8 1 4 5
样例输出 Copy
1 3 5 2 4 8
#include <stdio.h>
#include <string.h>
int main ()
{
int n,i,j,a[10],b[10],min,mi,max,ma,t,q;
scanf ("%d",&n);
for (i=0;i<n;i++)
{
scanf ("%d",&a[i]);
}
for (i=0;i<n;i++)
{
b[i]=a[i];
}
for(i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if (a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
min=a[0];
max=a[n-1];
for (i=0;i<n;i++)
{
if (b[i]==min)
{
mi=i;
}
if (b[i]==max)
{
ma=i;
}
}
t=b[mi];
b[mi]=b[0];
b[0]=t;
q=b[ma];
b[ma]=b[n-1];
b[n-1]=q;
for (i=0;i<n;i++)
{
printf ("%d ",b[i]);
}
}