这该怎么写啊,数组方面的(语言-java)

img


这个该怎么写,完全没有头绪,只能写出来一点点,没办法运行啊,求解惑。。


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 读取一维数组的大小
        System.out.print("请输入一维值:");
        int n = sc.nextInt();

        // 定义二维数组并录入数据
        int[][] arr = new int[n][];
        for (int i = 0; i < n; i++) {
            int m = (int) (Math.random() * 10); // 随机生成二维数组的长度
            arr[i] = new int[m];
            for (int j = 0; j < m; j++) {
                arr[i][j] = (int) (Math.random() * 100); // 生成 0~99 之间的随机整数
            }
        }

        // 按数组格式输出
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

写出来一点点没事,贴下代码,描述下你的思路,看是哪里卡住了

我的思路如下,供参考:

1、首先从输入获取二维数组的行数值num,然后创建num行长度的二维int数组;

2、利用两层for循环来产生所需随机数,第一层for循环遍历二维数组的每一行,然后产生此行的一个10以内的长度后,给此行创建一个此长度的int数组,用第二个for循环来为此行的每一个int数组元素产生一个两位数的随机数;

3、按格式分行打印结果。

参考链接:


https://blog.csdn.net/wsj_jerry521/article/details/109735801

https://huke88.com/baike/a34846/

import java.util.Random;
import java.util.Scanner;

public class RandomSomeArrTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一维值:");
        int num=sc.nextInt(); // 获取二维数组的行数值
        
    
        // http://c.biancheng.net/view/5857.html
        int [][] arr = new int[num][]; //创建num行二维数组,每一行的元素个数可变
        
        Random rand = new Random();
        for(int i=0;i<num;i++) {
            // https://blog.csdn.net/wsj_jerry521/article/details/109735801
            int len = rand.nextInt(9)+1; // [1,9] 生成下标为i的arr数组元素arr[i]的长度
            
            // https://huke88.com/baike/a34846/
            arr[i]=new int[len]; //把下标为i的arr数组元素arr[i]赋值为len个int型元素的一维数组
            
            //生成arr[i]一维数组里面的len个两位数随机数
            for(int j=0;j<len;j++) {
                int t = rand.nextInt(90)+10;// [10,99] 生成一个两位数的整数
                arr[i][j]=t; 
            }        
        }
        
        
        //打印结果
        for(int i=0;i<num;i++) {
            for(int j=0;j<arr[i].length;j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
        
    }
    

}

img