Java入门_一维数组_第三题_数组反转

发布时间 2023-03-25 21:18:43作者: 老白的梦旧

题目:数组反转

要求:

把数组的内容反转。
如:arr{ 11 , 22 , 33 , 44 , 55 , 66 } --> { 66 , 55 , 44 , 33 , 22 , 11 }。

思路-1

  1. 通过具体实例得,每一次都是将 arr[i] 和 arr[arr.length - 1 -i] 交换。
  2. 一共进行了 arr.length / 2 次。
  3. 引入Scanner进行扫描,从而实现随机性。

代码如下:

/*
只用于基础练习,不牵扯竞赛题相关要求。
 */
import java.util.Scanner;
public class Javatext6 {
    public static void main(String[]args){
        Scanner myScanner = new Scanner(System.in);
        System.out.println("请输出你要输入的数字个数");
        if (myScanner.hasNextInt()) {//判断输入的数据是否为int类型
            int add = myScanner.nextInt();
            int[] arr = new int[add];//创建数组
            System.out.println("请输入具体的数值");//多输入也没用,内存就分配了那点,先到先得
            for (int i = 0;i < arr.length;i++ ){//遍历给数组赋值
                int add1 = myScanner.nextInt();
                arr[i] = add1;
            }
            System.out.println("===数组的原始数据===");
            for (int i = 0 ;i < arr.length;i++){
                System.out.print(arr[i] + "\t");
            }
            int temp = 0;
            for (int i = 0;i < arr.length/2;i++){//将数组中的数据进行两两交换,从而实现内容反转
                temp = arr[i];
                arr[i] = arr[arr.length - 1 - i];
                arr[arr.length - 1 - i] = temp;
            }
            System.out.println(" ");
            System.out.println("===数组的反转后数据===");
            for (int i = 0 ;i < arr.length;i++){
                System.out.print(arr[i] + "\t");
            }
        }else{
            System.out.println("你输入的不是整数");
        }

    }
}

思路-2 (其实两个差不多)

  1. 创建一个数组。
  2. 输入实验数据
  3. 将数组中的数据倒序输出。

代码如下:

import java.util.Scanner;
public class Javatext6 {
    public static void main(String[]args){
        Scanner myScanner = new Scanner(System.in);
        System.out.println("请输出你要输入的数字个数");
        if (myScanner.hasNextInt()) {
            int add = myScanner.nextInt();
            int[] arr = new int[add];//创建arr1数组
            System.out.println("请输入具体的数值");
            for (int i = 0; i < arr.length; i++) {
                int add1 = myScanner.nextInt();
                arr[i] = add1;
            }
            System.out.println("===数组的原始数据===");
           for (int i = 0 ;i < arr.length;i++){
                System.out.print(arr[i] + "\t");
            }
            System.out.println(" ");
            System.out.println("===数组的反转后数据===");
            for (int i = arr.length - 1; i >= 0; i--) {
                System.out.print(arr[i] + "\t");
            }
        }else{
            System.out.println("你输入的不是整数");
        }
    }
}

人不风流枉少年