Хочу вывести числа из массива ,кратные числу которые вводит пользователь

Рейтинг: 0Ответов: 1Опубликовано: 17.05.2023

Я хочу вывести числа из массива, которые будут кратны числу, которое вводит пользователь.

В выводе получаю некорректное число. Помогите!

System.out.println("Дан массив, длинной 5.");

int[] number3 = new int[5];
System.out.println(Arrays.toString(number3));

System.out.println("Задайте свои значения для массива:");
System.out.println("");
System.out.println("Введите первое число:");
number3[0] = sc.nextInt();
System.out.println(Arrays.toString(number3));
System.out.println("Введите второе число:");
number3[1] = sc.nextInt();
System.out.println(Arrays.toString(number3));
System.out.println("Введите третье число:");
number3[2] = sc.nextInt();
System.out.println(Arrays.toString(number3));
System.out.println("Введите четвертое число:");
number3[3] = sc.nextInt();
System.out.println(Arrays.toString(number3));
System.out.println("Введите пятое число:");
number3[4] = sc.nextInt();
System.out.println(Arrays.toString(number3));

System.out.println("Введите число кратному которому вы хотите получить числа из массива с числами, которые вы указали:");

/*int personNumber = sc.nextInt();
int correctNumber = 0;
for (int x = 0; x < number3.length; x++) {
    if (number3[x] % personNumber) {
        correctNumber = x;
    System.out.println(number3[x]);

*/

int personNumber = sc.nextInt();
int correctNumbers = 0;
for (int i = 0; i <number3.length; i++) {
    if (i % personNumber == 0) {
        correctNumbers++;
        System.out.print(correctNumbers);
    }
}

Ответы

▲ 1

Попробуйте так

int personNumber = sc.nextInt();
int correctNumbers = 0;
for (int j : number3) {
    if (j % personNumber == 0) {
        correctNumbers++;
    }
}
System.out.print(correctNumbers);

Ваш код делает чуть другое

int personNumber = sc.nextInt();
int correctNumbers = 0;
// тут вы делите не число из массива, а индекс 0, 1, 2... и поэтому результат не тот
for (int i = 0; i <number3.length; i++) {
    if (i % personNumber == 0) {
        correctNumbers++;
        // это лучше выводить когда цикл закончит свою работу
        System.out.print(correctNumbers);
    }