ZZULI OJ 1120: 最值交换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014543872/article/details/84330331

题目描述

有一个长度为n的整数序列。请写一个程序,先把序列中的最小值与第一个数交换,再把最大值与最后一个数交换。输出转换好的序列。 分别编写两个函数MinIndex()和MaxIndex()来计算最小值下标和最大值下标。 

intMinIndex(int a[], int n);  //函数返回数组a中最小元素的下标 

intMaxIndex(int a[], int n);  //函数返回数组a中最大元素的下标 

数组元素的输出调用函数PrintArr()。 

输入

输入包括两行。 
第一行为正整数n(1≤n≤10)。 
第二行为n个正整数组成的序列,保证没有重复元素。 

输出

输出转换好的序列。数据之间用空格隔开。 

样例输入

5
5 4 1 2 3

样例输出

1 4 3 2 5
import java.util.Scanner;

public class Main {

         //返回数组中的最小值的索引值
       public int MinIndex(int[] a,int n){
               int min=a[0];
               int index=0;
               for (int i=0;i<n;i++){
                       if(min>a[i]){
                               min=a[i];
                               index=i;
                       }
               }
               return index;
       }

       //返回数组中的最大值的索引值
        public int MaxIndex(int[] a,int n){
               int max=a[0];
               int index=0;
               for (int i=0;i<n;i++){
                       if(max<a[i]){
                               max=a[i];
                               index=i;
                       }
               }
               return index;
        }

        //打印数组中的所有值
        public void PrintArr(int[] a,int n){
               for (int i=0;i<n;i++){
                       System.out.print(a[i]+" ");
               }
        }

        public static void main(String[] args) {
                Main main=new Main();
                Scanner input=new Scanner(System.in);
                int n=input.nextInt();

                int[] arr=new int[n];

                for (int i=0;i<n;i++){
                        int num=input.nextInt();
                        arr[i]=num;
                }

                //最小值与数组第一个值交换位置
                int min_index=main.MinIndex(arr,n);
                int temp=0;
                temp=arr[min_index];
                arr[min_index]=arr[0];
                arr[0]=temp;

                //此时数组最大值与最后一位值交换位置
                int max_index=main.MaxIndex(arr,n);
                int temp1=0;
                temp1=arr[max_index];
                arr[max_index]=arr[n-1];
                arr[n-1]=temp1;


                //打印数组元素
                main.PrintArr(arr,n);

        }
}

猜你喜欢

转载自blog.csdn.net/u014543872/article/details/84330331