分享

二维数组

 清哥好课堂 2022-06-01 发布于湖南


清哥好课堂

《最受欢迎的精准提升平台》

二维数组
/***@Title: ${filename}*@Package: ${package_name}*@Description: ${todo}*二维数组一,为什么需要二维数组?一维数组是可以用来存储相同类型的大量数据需求:存储3个学生java c  c++ 等三门课程的成绩java    c      c++    jsp    mysql80    70    80    90    90    9595    80    85  二,二维数组一般的定义格式数据类型[][] 数组名 = new 数据类型[行数][列数];指定行数和列数赋值数组名[行下标][列下标] = 值;行下标起始值0  结束值行数-1列下标起始值0  结束值列数-1**@author:  源代码资料尽在"清哥好课堂"公众号:qghktit*@date: ${date}${time}*@version: 1.0*/import java.util.Scanner;public class TwoArrary {  public static void main(String[] args)   {    //定义不同行中的列数    //举例    /*  杨辉三角    1        1   1       1   2   1       1   3   3   1        1   4    6   4   1        1    5   10  10  5   1    */    final int N = 10;    int[][] arr = new int[N][];
//赋值 //arr[0][0] = 1; //java.lang.NullPointerException //没有空间。赋值 //第0行申请空间 //arr[0] ;代表的是二维数组中的第一行,是一个一维数组 //也就是说arr[0]是一维数组的数组名 //就必须给数组开辟空间// arr[0] = new int[1]; //给二维数组的第一行,申请一个空间// arr[0][0] = 1;
/* i=0, 申请1个 i=1, 申请2个 i=2, 申请3个 */ for (int i=0; i<N; i++) //给每一行申请不同的空间数 { arr[i] = new int[i+1]; }
//求杨辉三角 for (int i=0; i<N; i++) { for (int j=0; j<=i; j++) { if (j==0 || i==j) //在0列上的,和对角线上的,都为1 { arr[i][j] = 1; } else if (i>j) { arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; } } }

//输出 //输出 for (int row=0; row<arr.length; row++) //外层循环打印行数 { for (int col=0; col<arr[row].length; col++) //内层循环打印列 { System.out.print(arr[row][col]+"\t"); } System.out.println(""); }
} public static void main5(String[] args) { //二维数组的非常规定义法 //行数是固定的,列数的值各不相同 //要开辟出 /* 一开始知道初始值 0行,2列 1行,3列 2行,2列 3行,3列 */ int[][] arr = {{1,2},{4,5,6},{7,8},{10,11,12}}; //arr[0][2] error //一个二维数组,由多个同类型的一维数组组成
System.out.println("整个数组的长度"+arr.length); System.out.println("第0行的长度:"+arr[0].length); System.out.println("第1行的长度:"+arr[1].length); System.out.println("第2行的长度:"+arr[2].length); System.out.println("第3行的长度:"+arr[3].length); //输出 for (int row=0; row<arr.length; row++) //外层循环打印行数 { for (int col=0; col<arr[row].length; col++) //内层循环打印列 { System.out.print(arr[row][col]+"\t"); } System.out.println(""); }
/* 杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 */ } public static void main4(String[] args) { //正常情况对数组的定义 //规规矩矩 //4*3 //int[][] arr = {{1,2},{4,5,6},{7,8,9},{10,11,12}}; /* 杨辉三角 1 0 0 0 0 1 1 0 0 0 1 2 1 0 0 1 3 3 1 0 0 1 4 6 4 1 0 1 5 10 10 5 1 */ final int N = 5; int[][] arr = new int[N][N]; //有默认值为0 for (int i=0; i<N; i++) { for (int j=0; j<=i; j++) { if (j==0 || i==j) //在0列上的,和对角线上的,都为1 { arr[i][j] = 1; } else if (i>j) { arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; }// {// if (i>j)// {// arr[i][j] = arr[i-1][j] + arr[i-1][j-1];// }// } } }

//输出 for (int row=0; row<arr.length; row++) { for (int col=0; col<arr[row].length; col++) { System.out.print(arr[row][col]+"\t"); } System.out.println(""); } } public static void main3(String[] args) { //从键盘接收3行4列中的最大值 int[][] arr = new int[3][4]; int index = 0; for (int row=0; row<arr.length; row++) { for (int col=0; col<arr[row].length; col++) { index++; System.out.println("请输入第"+index+"个元素:"); Scanner sc = new Scanner(System.in); arr[row][col] = sc.nextInt();
//求最大值 } }
//求最大值 //单独最大值,没有在输入元素时找最大值 int max = arr[0][0]; for (int row=0; row<arr.length; row++) { for (int col=0; col<arr[row].length; col++) { if (max < arr[row][col]) { max = arr[row][col]; } } } System.out.println("最大值为:"+max);
//输出 for (int row=0; row<arr.length; row++) { for (int col=0; col<arr[row].length; col++) { System.out.print(arr[row][col]+","); } System.out.println(""); } } public static void main2(String[] args) { //二维数组的定义方式 //对于一维数组 int[] arr1 = new int[]{1,2,3,4,5}; //对于二维数组,一开始有初值的定义方式 //一个二维数组,由多个一维数组组成 //int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
//int[] arr1 = {1,2,3,4,5} //可以简化为 int[][] arr = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
//输出 //手动去约束循环条件执行的次数 //length System.out.println("二维数组的长度:"+arr.length); System.out.println("其中的一维数组长度:"+arr[0].length+","+arr[1].length+","+arr[2].length+","+arr[3].length); for (int row=0; row<arr.length; row++) { for (int col=0; col<arr[row].length; col++) { System.out.print(arr[row][col]+","); } System.out.println(""); }
} public static void main1(String[] args) { //存储3个学生的3门成绩 int[][] scoreArr = new int[3][3]; //开辟空间,3*3=9个空间 //二维数组,由多个一维数组组成,堆区申请空间,int a;栈区 //赋值 //存第一个学生的三门成绩 scoreArr[0][0] = 80; scoreArr[0][1] = 70; scoreArr[0][2] = 80; //存第二个学生的三门成绩 scoreArr[1][0] = 90; scoreArr[1][1] = 90; scoreArr[1][2] = 95; //存第三个学生的三门成绩 scoreArr[2][0] = 95; scoreArr[2][1] = 80; scoreArr[2][2] = 85;
//输出 //打印一维数组,需要一个循环 //打印0行的值 //scoreArr[0][col]// for (int col=0; col<3; col++)// {// System.out.print(scoreArr[0][col]+",");// }// System.out.println("");// //scoreArr[1][col]// for (int col=0; col<3; col++)// {// System.out.print(scoreArr[1][col]+",");// }// System.out.println("");// //scoreArr[2][col]// for (int col=0; col<3; col++)// {// System.out.print(scoreArr[2][col]+",");// }// System.out.println(""); for (int row=0; row<3; row++) { for (int col=0; col<3; col++) { System.out.print(scoreArr[row][col]+","); } System.out.println(""); } }}

清哥好课堂公众号

微信号 : qghktit

新浪微博:清哥好课堂

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多