Java基础50道经典练习题(35)——最大最小交换

35 【程序 35 最大最小交换】
 
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
 
源码:
package com.homework.test;
import java.util.Scanner;
/*
35 【程序 35 最大最小交换】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
 */
public class Test35 {
    public static void main(String[] args) {
        int N = 8;
        int[] a = new int[N];// 创建一个八个元素的数组
        Scanner s = new Scanner(System.in);
        int idx1 = 0, idx2 = 0;
        System.out.println("请输入8个整数:");
        for (int i = 0; i < N; i++) {
            a[i] = s.nextInt();
        }
        // 获得输入的八个数字
        System.out.println("你输入的数组为:");
        for (int i = 0; i < N; i++) {
            System.out.print(a[i] + " ");
        }
        // 输出输入的数组
        int max = a[0], min = a[0];
        for (int i = 0; i < N; i++) {
            if (a[i] > max) {
                max = a[i];
                idx1 = i;
            }
            // 找出最大的数和其下标
            if (a[i] < min) {
                min = a[i];
                idx2 = i;
            }// 找出最大的数和其下标
        }

        if (idx1 != 0) {
            int temp = a[0];
            a[0] = a[idx1];
            a[idx1] = temp;
        }// 最大的数和第一个数交换位置
        if (idx2 != N - 1) {
            int temp = a[N - 1];
            a[N - 1] = a[idx2];
            a[idx2] = temp;
        }// 最小的数和最后一个数交换位置

        System.out.println("\n交换后的数组为:");
        for (int i = 0; i < N; i++) {
            System.out.print(a[i] + " ");
        }
    }
}

  

posted on 2020-06-06 04:29  lifelicanpeng  阅读(445)  评论(0编辑  收藏  举报

导航