Java数组相关练习

作业:
    1. 数组的元素倒序
    2. 数组的元素排序
        2.1 选择排序
        2.2 冒泡排序
    3. 创建长度为6的int数组,要求元素值在1-30之间。随机赋值,且元素值不能重复
    4. 要求将int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}数组当中的0对应的项去掉,将不为0的值
       存入到一个新数组当中,且保证前后的相对位置不发生改变,生成的新数组为:
       int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5}
    5. 测试某个数组是否有四个连续的值相同的数字
        编写测试程序,提示用户输入一个整数列表长度,之后提示用户输入一个对应长度的整数列表值
        如果这个列表中有四个连续的具有相同值得数,那就显示true;否则显示false。
    6. 编写程序,求整数矩阵中特定列的所有元素的和
       假定整数矩阵是一个 3 X 4 的矩阵,然后显示每列元素的和
       如:
            1 2 3 4
            5 6 7 8
            9 1 3 1
        控制台中输出的结果是:
            第一列:15
            第二列:9
            第三列:13
            第四列:13

import java.lang.reflect.Array;
import java.util.Random;
import java.util.Scanner;

public class HomeworkDay04 {
    public static void main(String[] args) {
        /**
         * 1. 数组的元素倒序
         */
        System.out.println("----第1题----");
        int[] arrayNum = {4,8,9,5,7,3,1};
        System.out.print("倒置前:");
        for (int i = 0; i < arrayNum.length; i++) {
            System.out.print(arrayNum[i]);
        }
        System.out.println("");
        int temp;
        for (int i = 0; i < arrayNum.length/2; i++) {
            temp =  arrayNum[i];
            arrayNum[i] = arrayNum[arrayNum.length - i - 1];
            arrayNum[arrayNum.length - i - 1] = temp;
        }
        System.out.print("倒置后:");
        for (int i = 0; i < arrayNum.length; i++) {
            System.out.print(arrayNum[i]);
        }
        System.out.println("");
        System.out.println("----第2题----");
        /**
         * 2. 数组的元素排序
         * 		2.1 选择排序
         * 		2.2 冒泡排序
         */
        // 2.1 选择排序
        int[] arrNum = {2,5,9,6,4,7,1};
        System.out.print("排序前:");
        for (int i = 0; i < arrayNum.length; i++) {
            System.out.print(arrNum[i]);
        }
        int tempNum;
        for (int i = 0; i < arrNum.length; i++) {
            for (int j = i + 1; j < arrNum.length; j++) {
                if (arrNum[j] < arrNum[i]){
                    tempNum = arrNum[j];
                    arrNum[j] = arrNum[i];
                    arrNum[i] = tempNum;
                }
          }
        }
        System.out.println("");
        System.out.print("排序后:");
        for (int i = 0; i < arrayNum.length; i++) {
            System.out.print(arrNum[i]);
        }
        System.out.println("");

        //  2.2 冒泡排序
        int arrMao[] = {4,7,2,3,6,8,1};
        //4 7 2 3 6 1 8

        System.out.print("排序前:");
        for (int i = 0; i < arrMao.length; i++) {
            System.out.print(arrMao[i]);
        }
        for (int i = 0; i < arrMao.length - 1; i++) {
            for (int j = 0; j < arrMao.length - i - 1; j++) {
                if (arrMao[j] > arrMao[j + 1]){
                    int tempNumber = arrMao[j];
                    arrMao[j] = arrMao[j+1];
                    arrMao[j + 1] = tempNumber;
                }
            }
        }
        System.out.println("");
        System.out.print("排序后:");
        for (int i = 0; i < arrMao.length; i++) {
            System.out.print(arrMao[i]);
        }
        System.out.println("");

        System.out.println("----第3题----");
        /**
         * 3. 创建长度为6的int数组,要求元素值在1-30之间。随机赋值,且元素值不能重复
         */
        int[] array = new int[6];
        Random random = new Random();
        System.out.print("随机生成的1-30之间不重复数字长度为6的数组为:");
        for (int i = 0; i < array.length; i++) {
            array[i] = random.nextInt(30) + 1;
                for (int j = 0; j < i; j++) {
                    if (array[i] == array[j]){
                        i--;
                        break;
                }
            }
            System.out.print(array[i] + " ");
        }
        System.out.println("");
        /**
         * 4. 要求将int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}数组当中的0对应的项去掉,将不为0的值
         * 	   存入到一个新数组当中,且保证前后的相对位置不发生改变,生成的新数组为:
         * 	   int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5}
         */
        System.out.print("----第4题----");
        System.out.println("");
        int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        System.out.print("原数组为:");
        for (int i = 0; i < oldArr.length; i++) {
            System.out.print(oldArr[i] + " ");
        }
        System.out.println("");
        int count = 0;
        for (int i = 0; i < oldArr.length; i++) {
            if(oldArr[i] != 0){
                count++;
            }
        }
        int[] newArr = new int[count];
        System.out.print("把0项处理掉后的数组为:");
        int k = 0;
        for (int i = 0; i < oldArr.length; i++) {
            if(oldArr[i] != 0){
                newArr[k] = oldArr[i];
                System.out.print(newArr[k] + " ");
                k++;
            }
        }
        System.out.println("");


        /**
         * 5.测试某个数组是否有四个连续的值相同的数字
         *         编写测试程序,提示用户输入一个整数列表长度,之后提示用户输入一个对应长度的整数列表值
         *         如果这个列表中有四个连续的具有相同值得数,那就显示true;否则显示false。
         */
        System.out.println("----第5题----");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个对应长度的整数列表值:");
        int num = scanner.nextInt();
        int[] arrNumber = new int[num];
        System.out.println("请输入数组");
        for (int i = 0; i < arrNumber.length; i++) {
            arrNumber[i] = scanner.nextInt();
        }
        for (int i = 0; i < arrNumber.length; i++) {
            int countNum = 1;
            for (int j = i + 1; j < arrNumber.length; j++) {
                if (arrNumber[i] == arrNumber[j]){
                    countNum++;
                }else {
                    break;
                }
            }
            if (countNum >= 4){
                System.out.println(true);
                return;
            }
        }
        System.out.println(false);
    }
}

public class HomeworkDay046 {
    public static void main(String[] args) {
        /**
         * 6. 编写程序,求整数矩阵中特定列的所有元素的和
         *        假定整数矩阵是一个 3 X 4 的矩阵,然后显示每列元素的和
         *        如:
         *             1 2 3 4
         *             5 6 7 8
         *             9 1 3 1
         *         控制台中输出的结果是:
         *             第一列:15
         *             第二列:9
         *             第三列:13
         * 			   第四列:13
         */
        System.out.println("----第6题----");
        int[][] twoArrays = {{1,2,3,4},{5,6,7,8},{9,1,3,1}};
        for (int j = 0; j < twoArrays[0].length; j++) {  // j列数
            int sum = 0;
            for (int i = 0; i < twoArrays.length; i++) { // i行数
                sum = sum + twoArrays[i][j];
            }
            System.out.println("第" + (j + 1) + "列的和为:" + sum);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值