zoukankan      html  css  js  c++  java
  • 二维数组

    用idea编写的。
    import java.util.Random;

    /**
    * 二维数组 (就是一维数组的嵌套)
    * 1.定义:类型[][] 数组名=new 类型[行数][列数]
    * int[][] a=new int[3][5];
    * int a[][]=new int[3][5];
    * int[] a[]=new int[3][5];
    *2.元素引用:数组名[行号][列号]
    * 行号和列号的下限为0
    */
    public class ArrayDemo2 {
    public static void main(String[] args) {
    int[][] a = new int[5][5];
    System.out.println(a);
    System.out.println(a[0]);
    System.out.println(a[1]);
    System.out.println(a[2]);
    //a[0]=new int[10];
    //System.out.println(a[0]);
    out(a);
    System.out.println("----给二维数组赋随机值:");
    setRandom(a);
    out(a);
    System.out.println("----找出以上二维数组每一行的最小值,并输出:");
    int[] b=new int[a.length];
    findMin(a,b);
    out(b);
    System.out.println("----数组转置:");
    ZhuanZhi(a);
    out(a);
    System.out.println("----输出杨辉三角:");
    int[][] x=new int[10][];//为节约内存,二维数组可以不定义成行列相等
    YangHui(x);
    out(x);
    }
    //杨辉三角:
    /**
    * 规则:1.每一行的第一列和最后一列的值均为1;
    * 2.当前数值=同列上一行的数值+前一列上一行的数值
    */
    static void YangHui(int[][] x) {
    for (int i = 0; i < x.length; i++) {
    x[i]=new int[i+1];//先写出数组结构:一个下三角
    x[i][0] = 1;//每一行的第一列为1
    x[i][i] = 1;//每一行的最后一列为1
    }
    for (int i=2;i<x.length;i++) { //因为从第2行才需开始计算
    for (int j = 1; j < i; j++) {
    x[i][j] = x[i - 1][j] + x[i - 1][j - 1];//当前数值=同列上一行的数值+前一列上一行的数值
    }
    }
    }

    //创建矩阵二维数组,实现行列互换(转置)
    static void ZhuanZhi(int[][] a){
    for (int i=0;i<a.length;i++){
    for (int j=0;j<i;j++){
    int t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
    }
    }
    }



    //比较二维数组每一行最小值并输出到一维数组中去:
    static void findMin(int[][] a,int[] b) { //在a数组中调用,存入b数组中

    for (int i=0;i<a.length;i++){
    int min=a[i][0];
    for (int j=0;j<a[i].length;j++){
    if (a[i][j]<min) min=a[i][j];
    }
    b[i]=min;
    }
    }
    static void out(int[] a){
    for (int e:a){
    System.out.print(e+" ");
    }
    System.out.println();
    }


    //给数组a赋100以内的随机值:
    static void setRandom(int[][] a){
    Random r=new Random();
    for (int i=0;i<a.length;i++){
    for (int j=0;j<a[i].length;j++){
    a[i][j]=r.nextInt(100);
    }
    }

    }

    //输出数组a的所有元素:
    static void out(int[][] a) {
    for (int i = 0; i < a.length; i++) { //a.length算的是行数的长度,即i<3
    for (int j = 0; j < a[i].length; j++) {
    System.out.print(a[i][j] + " ");
    }
    System.out.println();//换行显示
    }
    }

    }



    运行结果如下:

    [[I@1540e19d
    [I@677327b6
    [I@14ae5a5
    [I@7f31245a
    0 0 0 0 0
    0 0 0 0 0
    0 0 0 0 0
    0 0 0 0 0
    0 0 0 0 0
    ----给二维数组赋随机值:
    53 89 71 88 2
    52 64 5 79 29
    10 17 55 16 82
    73 58 39 28 23
    30 68 14 62 39
    ----找出以上二维数组每一行的最小值,并输出:
    2 5 10 23 14
    ----数组转置:
    53 52 10 73 30
    89 64 17 58 68
    71 5 55 39 14
    88 79 16 28 62
    2 29 82 23 39
    ----输出杨辉三角:
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    1 5 10 10 5 1
    1 6 15 20 15 6 1
    1 7 21 35 35 21 7 1
    1 8 28 56 70 56 28 8 1
    1 9 36 84 126 126 84 36 9 1



  • 相关阅读:
    博弈基础小结
    P4677 山区建小学|区间dp
    两道DP,四年修一次路
    每天一套题打卡|河南省第七届ACM/ICPC
    nyoj 1278G: Prototypes analyze 与 二叉排序树(BST)模板
    表达式求值
    每天一套题打卡|河南省第八届ACM/ICPC
    每天一套题打卡|河南省第九届ACM/ICPC
    每天一套题打卡|河南省第十届ACM/ICPC
    [UNIX]UNIX常用命令总结
  • 原文地址:https://www.cnblogs.com/tian-xin/p/8384900.html
Copyright © 2011-2022 走看看