fork download
  1. /* package whatever; // don't place package name! */
  2. import java.io.PrintStream;
  3. import java.nio.charset.StandardCharsets;
  4. import java.util.Random;
  5. import java.util.Scanner;
  6.  
  7. class DeleteArray {
  8.  
  9. static final int N = 10;
  10.  
  11. public static void main(String[] args) {
  12. Random rand = new Random();
  13. Scanner scan = new Scanner(System.in);
  14. // вывод в UTF-8:
  15. PrintStream ps = new PrintStream(System.out, false, StandardCharsets.UTF_8);
  16. ps.println("Границы массива:");
  17. int low = scan.nextInt();
  18. int high = scan.nextInt();
  19. assert (low != high); // проверка параметров!!
  20. if (low > high) { // <- для "чайников"
  21. int tmp = low;
  22. low = high;
  23. high = tmp;
  24. }
  25. // генерируем "массив":
  26. int[] arr = new int[N];
  27. for (int i = 0; i < arr.length; i++) {
  28. // arr(i) := случайное число в [low - high]
  29. arr[i] = rand.nextInt(high - low) + low;
  30. // ... и вывод:
  31. ps.format("%d ", arr[i]);
  32. }
  33. ps.println();
  34.  
  35. ps.println("Удалить элементы в интервале:");
  36. low = scan.nextInt();
  37. high = scan.nextInt();
  38. // тоже самое:
  39. if (low > high) { // <- для "чайников"
  40. int tmp = low;
  41. low = high;
  42. high = tmp;
  43. }
  44. // инициализация:
  45. int m = N; // "размерность массива", изначально: N
  46. int i = 0; // "курсор"
  47. while (i < m) {// В цикле перебираем элементы массива, начиная с первого.
  48. if (arr[i] <= high && arr[i] >= low) { // При обнаружении элемента, принадлежащего удаляемому интервалу:
  49. // размерность массива уменьшаем на единицу:
  50. m -= 1;
  51. // остальную (правую) часть массива сдвигаем на одну ячейку в лево
  52. for (int j = i; j < m; j++) {
  53. arr[j] = arr[j + 1];
  54. }
  55. } else { // При "не-обнаружении", просто двигаем курсор:
  56. i++;
  57. }
  58. }
  59. // следует заполнить конец массива нулями от элемента с индексом на единицу больше новой размерности массива до количества элементов в «старом» массиве:
  60. for (i = m; i < N; i++) {
  61. arr[i] = 0;
  62. }
  63. // вывод:
  64. for (i = 0; i < N; i++) {
  65. ps.format("%d ", arr[i]);
  66. }
  67. ps.println();
  68. //
  69. }
  70. }
  71.  
Success #stdin #stdout 0.12s 49832KB
stdin
1
10
3
8
stdout
Границы массива:
2 6 3 5 8 3 3 6 1 2 
Удалить элементы в интервале:
2 1 2 0 0 0 0 0 0 0