Проблемы с обработкой массива
K раз подаются пары значений a и b, в массиве [1-10] нужно заменить все значения на 0, которые попадают в диапазон a и b включительно. Никак не могу понять, почему при обработке последней пары чисел, цикл останавливается не заменив на 0 значение b.
for (int i = 0; i < K; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
for (int j = 0; j < arr.length ; j++) {
if (arr[j] == a) {
while (a<=b) {
arr[j] = 0;
++a;
++j;
}
}
}
}
ввод: 8 10; 2 5; 3 6; выводит: 1000067000
Ответы (2 шт):
Автор решения: стасевич
→ Ссылка
пробуй....
public class TestTest {
public static void main(String[] args) {
int a = 1; //замени на скан
int b = 8; // замени на скан
int[] arr = {1, 2,12,15, 3, 4, 5, 11};
//проходим по всему массиву
for (int i = 0; i < arr.length; i++) {
//если i-тый элемент меньше либо b,
// если i-тый элемент ,больше либо a
// то заменяем его на 0
if (arr[i] <= b && arr[i] >= a) {
arr[i] = 0;
}
}
System.out.println(Arrays.toString(arr)); //[0, 0, 12, 15, 0, 0, 0, 11]
}
}
Автор решения: Сенька Кривой
→ Ссылка
вот рабочий вариант
for (int i = 0; i < K; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
for (int j = 0; j < arr.length; j++) {
if ( j == a - 1){
while (a <= b){
arr[j] = 0;
j++;
a++;
}
}
}
}