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、按格式分行打印结果。
参考链接:
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();
}
}
}