public class DeleteArray {
public static void main(String[] args) {
Random rand = new Random();
Scanner scan = new Scanner(System.in);
System.out.println("Введите размер массива - ");
int x = scan.nextInt();
int [] arr = new int[x];
int [] arr1 = null;
System.out.println("Введите значение a - ");
int a = scan.nextInt();
System.out.println("Введите значение b - ");
int b = scan.nextInt();
for (int i = 0;i< arr.length;i++) {
arr[i] = rand.nextInt(10)+5;
}
System.out.println("" + Arrays.toString(arr));
for (int i = 0; i < arr.length; i++) {
if (i>=a && i<=b) {
arr[i] = arr[i+1];
arr[i] = 0;
}
}
System.out.println("" + Arrays.toString(arr));
}
}
看这里(测试ideone)(更正了从问题中复制的错误)
在源代码中,需要检查数组中的值是否属于某个范围,而不是其索引。
这里主要是输入
j最后一个正确元素的单独索引,同时通过数组,跳过排除范围内的数字,通过索引写入“合适”的值j并递增它。最后,从索引开始用零填充尾部j(尽管对于真正的压缩,您应该将数组复制到较小的一个并丢弃零)。结果为
a = 7, b = 10;试试这个(嵌入式评论):
给出,例如:
ideone