Проблема с вашим кодом не в том, как вы читаете ввод, а в этой строке здесь:
a = b = new int[n];
В этой строке вы устанавливаете a
и b
на то же самое новый int
массив. Вы действительно создали здесь новый массив, но создали только один. И a
, и b
относятся к одному и тому же. Таким образом, когда вы выполняете b[i] = ...
, вы фактически перезаписываете значения, которые вы только что записали в него, в первом l oop.
Вы должны создать два массива:
a = new int[n];
b = new int[n];
Обратите внимание, что другой способ прочитать ввод - использовать nextInt
, но ваш способ тоже подходит.
Scanner sc = new Scanner(System.in);
int n, x, y;
n = sc.nextInt();
x = sc.nextInt();
y = sc.nextInt();
int[] a, b;
a = new int[n];
b = new int[n];
for(int i = 0; i < n; i++){
a[i] = sc.nextInt();
}
for(int i = 0; i < n; i++){
b[i] = sc.nextInt();
}