Создайте несколько массивов, используя цикл for
Я хотел бы сделать программу, в которой пользователь может ввести количество переменных и заполнить каждую переменную определенными значениями. Например, пользователь вводит, что он / она хочет сделать 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;
}
}
}
И как я могу сравнить эти массивы, которые вводит пользователь?
3 ответа
Проблема в том, что каждый раз вы создаете массив. попробуй это:
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;
}
}
Вместо создания одномерного массива вы создаете зубчатый массив. По сути, двумерный массив - это массив массивов. таким образом, пользователь вводит количество массивов (i
), а затем продолжает заполнять массивы.
Чтобы проверить, не имеют ли две коллекции значения общих, вы можете использовать
Collections.disjoint();
Для других операций, вы можете посмотреть здесь
Это должно работать и решить их первый пункт
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;
}
}
Это должно работать (с двумерным массивом)
public static void main(String[] args){
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;q++){
int n = s.nextInt();
var[j][q] = n;
}
}
}
Вы также должны заменить приращение во втором цикле ("q++" вместо "p++")