欢迎提出更好的方法
标题 交换最大值与最小值
问题描述
将输入的一系列整数保存在数组中,然后将输入的一系列整数中的最小值与第一个数交 换,然后将最大值与最后一个数交换,最后按照交换后的顺序输出数组中的元素。(注: 已知输入的系列整数最大值和最小值均唯一)
输入说明 输入数据分为两行。 第一行包含了一个整数n,表示整数系列的个数,2 ≤ n ≤ 20。 第二行包含n个整数,整数区间为[0,10000]。
输出说明 按照交换后的顺序输出数组中的元素,中间用空格分隔。
输入样例1
6 5 8 2 5 1 4
输出样例1
1 4 2 5 5 8
输入样例2
6 1 8 2 5 6 9
输出样例2
1 8 2 5 6 9
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,max=-1,min=10001,i;
int a[22];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
for(i=0;i<n;i++)
{
if(a[i]==min)
{
a[i]=a[0];
a[0]=min;
}
if(a[i]==max)
{
a[i]=a[n-1];
a[n-1]=max;
}
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}