游客 Signup | Login
中文 | En

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;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题