Он делает это, потому что input.nextInt(); не фиксирует новую строку. вы могли бы сделать, как и другие, добавив под ним input.nextLine();. В качестве альтернативы вы можете сделать это в стиле C # и разобрать nextLine на целое число так:
int number = Integer.parseInt(input.nextLine());
Выполнение этого работает так же хорошо, и оно сэкономит вам строку кода.
Вот реализация one , но независимо от того, за что вы находитесь, невозможно сказать, потому что вы не указали, что, по вашему мнению, ответ должен быть :
let answer = zip(array1, array2).map {$0.0 == $0.1}
Это дает вам список значений Bool, true
, если ответ соответствует правильному ответу, false
, если это не так.
Но скажем, что вы хотели был списком индексов тех ответов, которые являются правильными. Затем вы можете сказать:
let answer = zip(array1, array2).enumerated().filter() {
$1.0 == $1.1
}.map{$0.0}
Если вы хотите, чтобы список индексов тех ответов, которые не правильные, просто измените ==
на !=
.