二维数组练习题

本文通过一系列的编程练习题介绍了二维数组在Java中的应用,包括计算3*3矩阵对角线元素之和,交换二维数组行元素,清除数组边界值,左下三角清0,对角线清0,寻找每行最大值,以及数组的最大值和最小值求解。适合Java初学者提升二维数组操作技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是二维数组以及二维数组的写法

public class ArrayDemo01 {
    public static void main(String[] args) {
        /*
        二维数组:即数组的嵌套,数组里面的元素又是一个数组
         */

        //声明二维数组,数据类型[][] 数组名; 或者 数据类型 数组名[][];
        //声明一个int类型的二维数组
        int[][] nums;
        //声明一个String类型的二维数组
        String[][] strs;

        //分配空间(告诉你这个数组里可以存储多少个元素):   数组名 = new 数据类型[数组长度][数组长度];  或者 数组名 = new 数据类型[数组长度][];
        //注意:二维数组在分配空间的时候,第一个数组长度必须要写,告诉你这个二维数组里有多少个元素,第二数组长度可以写,可以不写,不过写了,表示这个二维数组里的里面的元素(一维数组)的长度,如果没有写,这个二维数组里面的元素(一维数组)长度可以不一样
        //给nums数组分配空,这个数组可以存储3个元素,里面的元素长度都相同,都为5
        nums = new int[3][5];
        //给strs数组分配空间,这个数组可以存储5个元素,里面的元素长度不相同
        strs = new String[5][];

        //赋值:数组名[下标][下标] = 数据;
        //给nums数组里的第一个元素(一维数组)下标为0的元素赋值为9
        nums[0][0] = 9;

        nums[2][4] = 84;
        // nums[2][5] = 99;//ArrayIndexOutOfBoundsException
        // System.out.println(nums[2][5]);

        //操作数据:数组名[下标][下标];

    }
}
public class ArrayDemo02 {
    public static void main(String[] args) {
        // 二维数组的声明和分配空间合并写
        //数据类型[][] 数组名=new 数据类型[数组长度][数组长度];  或者  数据类型[][] 数组名=new 数据类型[数组长度][];

        int[][] nums = new int[5][3];
        int[][] nums2 = new int[3][];
        String[][] strs = new String[6][5];
        String[][] strs2 = new String[8][];

        //二维数组的声明、分配空间、赋值合并写
        //数据类型[][] 数组名 = new 数据类型[][]{
  
  {数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};   注意:new后面的两个[][]里都不能写数组长度
        char[][] chars = new char[][]{
  
  {'a','b','c'},{'c','d'},{'m'}};

        //二维数组的声明、分配空间、赋值合并的简写方式
        //数据类型[][] 数组名 = {
  
  {数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};
        double[][] nums3 = {
  
  {2.5,5.5},{11.5,55.5},{99.9,88.8},{70.5,50}};

    }
}

2、求一个3*3矩阵对角线元素之和

<提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

import java.util.Scanner;

public class Subject02 {
    public static void main(String[] args) {
        
        //声明一个二维数组
        int[][] num=new int[3][3];
        //声明Scanner类
        Scanner sc=new Scanner(System.in);
        for (int i=0;i< num.length;i++){
            for (int j=0;j<num[i].length;j++){
                System.out.println("请输入第"+(i+1)+"行第"+(j+1)+"个数据");
                num[i][j]=sc.nextInt();
            }
            System.out.println();
        }
        System.out.println("这个矩阵大致形状为:");
        int sum=0;
        for (int i=0;i<num.length;i++){
            for (int j=0;j<num[i].length;j++){
                if (i==j){
                    sum+=num[i][j];
                }
                System.out.print(num[i][j]+" ");
            }
            System.out.println();
        }
        System.out.println("对角线之和为:"+sum);
    }
}

3、定义一个44列的二维数组,逐个从键盘输入值,然后将第1<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值