【问题描述】输入一个正整数n(1≤n≤10),再输入n个正整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。试编写相应程序
【输入形式】输入一个正整数n(1≤n≤10),再输入n个正整数
【输出形式】
【样例输入】
5
8 2 5 1 4
【样例输出】
1 2 5 4 8
【样例说明】
【评分标准】
#include<stdio.h>
int main(void)
{
int a[10];
int n,i,min,max,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
min=max=0;
for(i=1;i<n;i++)
{if(a[i]>a[max])max=i;//记录最大数组位数,第一个最大默认为0
if(a[i]<a[min])min=i;//同理
}
t=a[min];//令t为最小值 //最小值缓存
a[min]=a[0];//令最小值位置的数为第一个数
a[0]=t;//令第一个数为最小值//缓存t的读出
if(0==max)max=min;//如果之前遍历的过程中第一个数就是最大值,令(如果属于这种情况交换之后
//原来之前最小值的数组位置就是现在的最大值)最大值的数组位置是正确的位置
t=a[max];//最大值入缓存
a[max]=a[n-1];//令最大值位置的数是最后一个数
a[n-1]=t;//令最后一个数是最大值的数
for(i=0;i<n;i++)//打印
printf("%d ",a[i]);
return 0;
}