zoukankan      html  css  js  c++  java
  • 数组元素换位置游戏

    【问题描述】输入一组数组元素,将第二大的元素和第一个元素换位置,将最小的元素和最后一个元素换位置
    【输入形式】第一行输入数组长度,第二行输入数组元素(空格间隔,回车停止)

    【输出形式】第一行输出:最小元素是第几个 第二大的元素是第几个

                        第二行输出:换位置之后的数组
    【样例输入】6

                        4 5 6 1 3 2

    【样例输出】4 2

                        5 4 6 2 3 1 

    【思路】定义两个数组data[]和data1[],其中的元素是一样的,都是刚开始键盘输入的。

        对data1进行排序,然后按题目要求在data中找第二大的,也就是data1中的倒数第二个元素,如果找到,就将data中的第一个元素给刚才找到的这个位置上。

        就是替换一下原有的值,然后将data1中的倒数第二个元素给了data中的第一个元素在的位置,也就是替换了data中0号位的元素。

        这样就实现了数组中元素的交换(可能有些麻烦)也就是题目中的要求。

        同理实现最小值跟最后一个位置上元素的交换。

        还有就是要记录第二大值跟最小值的位置:这个记录要放在程序的最前面。也就是开头的那两个for循环

        如果放到程序中的那两个for循环中可能会出错。

        最后按要求求和输出一下。

    【代码如下:】

    package text1;
    import java.util.Arrays;
    import java.util.Scanner;
    public abstract class twelve {
     public static Scanner sc = new Scanner(System.in);
     public static int n = sc.nextInt();
     public static int x;
     public static int z;
     public static void main(String[] args) {
      int[] data = new int[n];
      int[] data1 = new int[n];
      for (int i = 0; i < n; i++) {
       data[i] = sc.nextInt();
       data1[i] = data[i];
      }
      Arrays.sort(data1);
      for (int i = 0; i < n; i++) {
       if (data[i] == data1[n - 2]) {
        z = i;
       }
       if (data[i] == data1[0]) {
        x = i;
       }
      }
    //实现第二大值的交换:
      for (int i = 0; i < n; i++) {
       if (data[i] == data1[n - 2]) {
        data[i] = data[0];
        data[0] = data1[n - 2];
        break;
       }
      }
    //实现最小值的交换:
      for (int i = 0; i < data1.length; i++) {
       if (data[i] == data1[0]) {
        data[i] = data[n - 1];
        data[n - 1] = data1[0];
        break;
       }
      }
      System.out.print(x + 1 + " ");
      System.out.println(z + 1);
      for (int i = 0; i < n; i++) {
       System.out.print(data[i] + " ");
      }
     }
    }
     这是我的课后作业,答案是自己写的。如果你们有更好的方法,真心希望告诉我。或者对我的代码有改进的地方,也请告诉我。
    当然,如果那行看不懂欢迎咨询,(我每天都会看的),还有就是代码要结合着我写的思路看,更容易理解。
  • 相关阅读:
    【微服务架构】SpringCloud之Ribbon
    SpringCloud之Eureka(注册中心集群篇)
    Eureka简介
    两行代码 搞定计数
    HBase详细概述
    电商项目介绍---说的很好
    面试:----Nginx的一理解
    redis介绍
    Linux操作系统介绍
    什么是Solr
  • 原文地址:https://www.cnblogs.com/HeSC980513/p/11869999.html
Copyright © 2011-2022 走看看