YangeIT大约 5 分钟

代码题1

  1. 定义两个长度为5的int型数组arr1,arr2,要求如下:

    a. 提示用户分别录入5个整数存放到arr1和arr2中。

    b. 将arr1和arr2中的对应的元素的和,按降序输出到控制台上(不能使用api里的排序方法)。

示例如下:image


public class JavaBasic04Task1 {
    public static void main(String[] args) {
        // 定义两个长度为5的int型数组arr1,arr2
        int[] arr1 = new int[5];
        int[] arr2 = new int[5];

        Scanner scanner = new Scanner(System.in);

        // 提示用户分别录入5个整数存放到arr1中
        System.out.println("请输入arr1数组的5个整数:");
        for (int i = 0; i < arr1.length; i++) {
            arr1[i] = scanner.nextInt();
        }

        // 提示用户分别录入5个整数存放到arr2中
        System.out.println("请输入arr2数组的5个整数:");
        for (int i = 0; i < arr2.length; i++) {
            arr2[i] = scanner.nextInt();
        }

        // 将arr1和arr2中的对应的元素的和,按降序输出到控制台上
        int[] sumArray = new int[5];
        for (int i = 0; i < arr1.length; i++) {
            sumArray[i] = arr1[i] + arr2[i];
        }

        // 冒泡排序,按降序排列
        for (int i = 0; i < sumArray.length - 1; i++) {
            for (int j = 0; j < sumArray.length - i - 1; j++) {
                if (sumArray[j] < sumArray[j + 1]) {
                    // 交换元素
                    int temp = sumArray[j];
                    sumArray[j] = sumArray[j + 1];
                    sumArray[j + 1] = temp;
                }
            }
        }

        // 输出结果
        System.out.println("降序输出的和数组:");
        for (int num : sumArray) {
            System.out.print(num + " ");
        }
    }
}

代码题2

现在main方法中有一个数组int arr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

要求如下:

  1. 定义方法,将数组中的0使用1-10之间的随机数替换掉(使用新的随机数替换数组中值为0的元素),并统计替换了多少个。

  2. 调用上面定义的方法,替换掉0并统计结果

  3. 对操作后的数组使用任意格式进行遍历,查看结果


public class JavaBasic04Task2 {

        public static void main(String[] args) {
            // 给定的数组
            int[] arr = {1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5};

            // 替换
            Random random = new Random();
            int replacedCount = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] == 0) {
                    // 使用1-10之间的随机数替换数组中值为0的元素
                    arr[i] = random.nextInt(10) + 1;
                    replacedCount++;
                }
            }

            // 输出替换结果
            System.out.println("替换了 " + replacedCount + " 个0");

            // 遍历操作后的数组
            System.out.println("替换后的数组:");
            for (int num : arr) {
                System.out.print(num + " ");
            }
        }
    }

代码题3

定义包含如下元素的数组, 并实现数组的反转. 如下图所示:

输出结果 :

要求:

  1. 定义一个数组, 元素定义如下 : 12, 23, 34, 45, 56
  2. 调用一个功能, 该功能可以实现数组的反转. 方法定义如下 : reverse(数组参数) 无返回值.
  3. 调用一个功能, 该功能可以实现将数组中的元素拼接为字符串返回, 方法定义如下 : arrayToString(数组参数) String类型返回值.
  4. 数组返回的字符串, 如上图的输出结果即已完成. 提示一 : 数组反转功能中请使用 for 循环 实现. 提示二 : 数组转字符串功能中请使用字符串拼接方法实现.
package com.itheima;

public class JavaBasic04Task3 {

    public static void main(String[] args) {
        // 定义数组
        int[] array = {12, 23, 34, 45, 56};
        System.out.println("反转前的数组:");
        for (int num : array) {
            System.out.print(num + " ");
        }
        System.out.println("");
        // 调用数组反转功能
        reverse(array);

        // 输出反转后的数组
        System.out.println("反转后的数组:");
        for (int num : array) {
            System.out.print(num + " ");
        }

        // 调用数组转字符串功能
        String result = arrayToString(array);

        // 输出数组转字符串的结果
        System.out.println("数组转换为字符串的结果:");
        System.out.println(result);
    }

    // 数组反转功能
    private static void reverse(int[] array) {
        int length = array.length;
        for (int i = 0; i < length / 2; i++) {
            // 交换元素
            int temp = array[i];
            array[i] = array[length - i - 1];
            array[length - i - 1] = temp;
        }
    }

    // 数组转字符串功能
    // 数组转字符串功能
    private static String arrayToString(int[] array) {
        // 使用String的字符串拼接操作符 +
        String result = "";

        for (int i = 0; i < array.length; i++) {

            // 去掉最后的逗号和空格
            if (i == array.length - 1) {
                result += array[i];
            } else {
                result += array[i] + ", ";
            }


        }


        return result;
    }
}


代码题4

3.3 【选做题】创建一个长度10的数组,将10个1-20之间的随机数存入数组中,要求数组中的元素不能重复,再创建一个新数组,将原数组中元素为奇数全部在左边,偶数全部在右边。

3.3.1 最终效果
1
1

public class JavaBasic04Task4 {
    public static void main(String[] args) {
        // 创建长度为10的数组,存入10个1-20之间的不重复随机数
        int[] originalArray = new int[10];

        //定义一个随机数对象,用来获取随机数
        Random random = new Random();

        // 开启循环,循环10次给数组赋值
        for (int i = 0; i < 10; i++) {
            //定义一个变量接收随机数
            int randomNumber;
            //定义一个变量,判断随机数是否重复
            boolean isDuplicate;

            do {
                //默认是不重复的
                isDuplicate = false;
                //获得随机数
                randomNumber = random.nextInt(20) + 1;

                // 检查是否重复
                for (int j = 0; j < i; j++) {
                    if (originalArray[j] == randomNumber) {
                        isDuplicate = true;
//                        如果重复了,就结束当前循环
                        break;
                    }
                }
                //直到不重复,isDuplicate=false
            } while (isDuplicate);

            //将不重复的随机数,放到数组中
            originalArray[i] = randomNumber;
        }

//        Arrays.toString可以用来打印数组,仅仅是一个工具类
        System.out.println("原始数组:" + Arrays.toString(originalArray));

        // 将原数组中的奇数放在左边,偶数放在右边
        int[] modifiedArray = new int[10];
        int oddIndex = 0;
        int evenIndex = originalArray.length-1;

        for (int num : originalArray) {
            if (num % 2 == 1) {
                //如果是奇数,从左边依次存放
                modifiedArray[oddIndex++] = num;
            } else {
                //如果是偶数,从右边依次存放
                modifiedArray[evenIndex--] = num;
            }
        }

        System.out.println("修改后的数组:" + Arrays.toString(modifiedArray));
    }
}