一些关于二维数组的小练习

1.

已知二维数组数据 int[][] nums={{1,2,3},{4,5,6},{7,8,9}};输出所有数据。


/*
 * 给定一个数组,对数组使用冒泡排序进行降序排序
 */
public class num1 {
    public static void main(String[] args) {
        //给定数组;
        int[] a = {1,2,3,4,5,6};
        //冒泡排序;
        for(int k=0;k<a.length-1;k++) {
            //定义标记量;
            boolean flag = true;
            
            for(int i=0;i<a.length-1-k;i++) {
                //降序
                if(a[i]<a[i+1]) {
                    int t = a[i];
                    a[i] = a[i+1];
                    a[i+1] = t;
                    flag = false;
                }
            }
            if(flag) {
                break;
            }
    }    
        //遍历输出数组测试
        for(int n:a) {
            System.out.print(n+" ");
        }
    }    
}

2.

定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换



/*
 * 已知二维数组数据 int[][] nums={{1,2,3},{4,5,6},{7,8,9}};输出所有数据。
 */
public class num2 {
    public static void main(String[] args) {
        //定义数组;
        int[][] nums = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        //遍历输出数组元素;
        for (int i = 0; i <= nums.length - 1; i++) {
            for (int j = 0; j <= nums[i].length - 1; j++) {
                System.out.println("a[" + i + "][" + j + "]=" + nums[i][j]);    
            }
        }
    }
}

3.

定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出



import java.util.Scanner;

/*
 * 定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换
 */
public class num3 {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        //定义一个4*4二维数组,使用循环键入值;
        int[][] nums = new int[4][4];
        for (int i = 0; i <= nums.length - 1; i++) {
            for (int j = 0; j <= nums[i].length - 1; j++) {
            Scanner in = new Scanner(System.in);
            System.out.print("请输入a[" + i + "][" + j + "]:" );    
            nums [i][j] = in.nextInt();
            }
            System.out.println("");    
        }
        //交换数据;
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < nums[i].length; j++) {
                //第一行数据和第四行数据交换;
                if (i == 0) {
                    int temp = nums[i][j];
                    nums[i][j] = nums[3][j];
                    nums[3][j] = temp;
                //第二行数据和第三行数据交换;
                } else if (i == 1) {
                    int temp = nums[i][j];
                    nums[i][j] = nums[2][j];
                    nums[2][j] = temp;
                }
            }
        }
        //遍历输出数组nums测试;
        for (int i = 0; i <= nums.length - 1; i++) {
            for (int j = 0; j <= nums.length - 1; j++) {
                System.out.println("a[" + i + "][" + j + "]=" + nums[i][j]);    
            }
        }
    }
}

4.

打印杨辉三角

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

实现键盘录入指定行数

a[i][j] = a[i-1][j]+a[i-1][j-1];



import java.util.Scanner;

/*
 * 打印杨辉三角
        1
        1 1    
        1 2 1
        1 3 3 1
        1 4 6 4 1 
        1 5 10 10 5 1

      实现键盘录入指定行数

        a[i][j] = a[i-1][j]+a[i-1][j-1];
 */
public class num5 {
    public static void main(String[] args) {
        //杨辉三角每一行头尾为1,本行除头尾之外的每个数分别等于前一行的本列加前一列的数值之和;
        
        Scanner in = new Scanner(System.in);
        System.out.println("请输入想要输出的行数:");
        int n = in.nextInt();
        //定义一个长度为n的二维数组
        int[][] a = new int[n][];
        
        for(int i=0;i<a.length;i++) {
            a[i] = new int[i+1];
            //给a[i]这个一维数组中的各个元素赋值
            for(int j=0;j<a[i].length;j++) {
                if(j==0 || j==a[i].length-1) {
                    a[i][j] = 1;
                }else {
                    a[i][j] = a[i-1][j]+a[i-1][j-1];
                }
            }
        }
        //输出杨辉三角
        for(int i=0;i<a.length;i++) {
            for(int j=0;j<a[i].length;j++) {
                System.out.print(a[i][j]+"\t");
            }
            System.out.println();
        }
    in.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值