题目描述
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
输入格式
测试数据有多组,输入n(1<=n<=20),接着输入n个数。
输出
对于每组输入,输出交换后的结果。
样例输入
5
1 2 3 4 5
样例输出
5 2 3 4 1
代码如下:
#include<stdio.h>
int main()
{
long n,a[30],i,j,min,max,b[30],c;
long temp;
while(scanf("%d",&n)!=EOF)
{
c=1;
min=1;max=1; // 令最大数与最小数的位置为a[1] a[1]
for(i=1;i<=n;i++){
scanf("%d",&a[i]); b[i]=a[i];
}
for (i=1;i<=n;i++){
if (a[min]>a[i])
min=i;
}
for (i=1;i<=n;i++){
if (a[max]<a[i])
max=i;
}
temp=b[max];
b[max]=b[min];
b[min]=temp;
for (i=1;i<=n;i++){
if (i==n) c=2;
if (c==1){
printf ("%d ",b[i]);
}
else printf ("%d",b[i]);
}
printf ("\n");
}
return 0;
}