Хочу вывести числа из массива ,кратные числу которые вводит пользователь
Я хочу вывести числа из массива, которые будут кратны числу, которое вводит пользователь.
В выводе получаю некорректное число. Помогите!
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 шт):
Автор решения: Georgy Goloborodov
→ Ссылка
Попробуйте так
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);
}