1533 - 互换最大最小数
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
Input
测试数据有多组,输入n(1<=n<=20),接着输入n个数。
Output
对于每组输入,输出交换后的结果。
Examples
Input
5 1 2 3 4 5
Output
5 2 3 4 1
Solution C
#include<stdio.h> int main() { int i,m,n,min,max,max_index,min_index; int array[20]; while(scanf("%d",&n)!=EOF) { scanf("%d",&array[0]); min=max=array[0]; max_index=min_index=0; for(i=1;i<n;i++) { scanf("%d",&array[i]); if(array[i]>max) { max=array[i]; max_index=i; } if(array[i]<min) { min=array[i]; min_index=i; } } if(max_index!=min_index) { int temp=array[min_index]; array[min_index]=array[max_index]; array[max_index]=temp; } for(i=0;i<n-1;i++) printf("%d ",array[i]); printf("%d\n",array[i]); } }
Solution C++
#include<stdio.h> int main() { int n,a[20],i,t,maxi,mini,maxip,minip; while(scanf("%d",&n)!=EOF) { for(maxi=-1000000000,mini=1000000000,i=0;i<n;i++) { scanf("%d",&a[i]); if(a[i]>maxi) { maxi=a[i]; maxip=i; } if(a[i]<mini) { mini=a[i]; minip=i; } } t=a[maxip]; a[maxip]=a[minip]; a[minip]=t; for(i=0;i<n;i++) printf(i==n-1?"%d\n":"%d ",a[i]); } return 0; }