我想创建一个程序,用户可以输入变量的数量,并用特定值填充每个变量。例如,用户输入他/她想要制作10个数组,然后用户输入第一个数组应该有5个元素,而用户用值填充该数组,然后用户希望第二个数组有4个元素,并且相同等等。
这是我正在使用的代码,但它不起作用:
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("Enter the numbers of variables: ");
int i = s.nextInt();
for(int j = 0;j < i;j++){
int[] var = new int[j];
System.out.println("Enter the number of values: ");
int p = s.nextInt();
for(int q = 0;q < p;p++){
int n = s.nextInt();
var[q] = n;
}
}
}
我怎样才能比较用户输入的这些数组呢?
答案 0 :(得分:1)
问题在于每次创建数组时。 试试这个:
Scanner s = new Scanner(System.in);
System.out.println("Enter the numbers of variables: ");
int i = s.nextInt();
int[][] var = new int[i][];
for(int j = 0;j < i;j++){
System.out.println("Enter the number of values: ");
int p = s.nextInt();
var[j] = new int[p];
for(int q = 0;q < p;p++){
int n = s.nextInt();
var[j][q] = n;
}
}
您可以创建锯齿状数组,而不是创建一维数组。实质上,2d数组是一个数组数组。这样,用户输入数组的数量(i
),然后继续填充数组。
要检查两个集合是否没有公共值,可以使用
Collections.disjoint();
对于其他操作,您可以查看here
答案 1 :(得分:0)
这应该有效(使用bidimensionnal数组)
for
你也必须在第二个循环中替换增量(&#34; q ++&#34;而不是&#34; p ++&#34;)
答案 2 :(得分:0)
这应该有效并解决他们的第一点
Scanner s = new Scanner(System.in);
System.out.println("Enter the numbers of variables: ");
int i = s.nextInt();
int[][] var = new int[i][];
for(int j = 0;j < i;j++){
System.out.println("Enter the number of values: ");
int p = s.nextInt();
while (p>0)
{
var[j] = new int[p];
for(int q=0;q < p;q++){
System.out.println("Value number : " +(q+1) + " For Array Number "+ (j+1));
int n = s.nextInt();
var[j][q] = n;
}
p-=1;
}
}