1533 - 互换最大最小数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。

题目输入

测试数据有多组,输入n(1<=n<=20),接着输入n个数。

题目输出

对于每组输入,输出交换后的结果。

输入/输出样例

输入格式

5
1 2 3 4 5

输出格式

5 2 3 4 1

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]);
  }    
}

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;
}

Java解答

import java.util.Scanner;
public class Main {
	public static void main(String[] args){
		Scanner cin=new Scanner(System.in);
		while(cin.hasNext()){
			int n=cin.nextInt();
			int[]a=new int[n];
			int max=Integer.MIN_VALUE;
			int min=Integer.MAX_VALUE;
			for(int i=0;i<n;i++){
				a[i]=cin.nextInt();
				if(a[i]>max)
					max=a[i];
				if(a[i]<min)
					min=a[i];
			}
			for(int i=0;i<n-1;++i){
				if(a[i]==max)
					System.out.print(min+" ");
				else if(a[i]==min)
					System.out.print(max+" ");
				else
					System.out.print(a[i]+" ");
			}
			if(a[n-1]==max)
				System.out.println(min);
			else if(a[n-1]==min)
				System.out.println(max);
			else
				System.out.println(a[n-1]);
		}
		cin.close();
	}
}