Удалить элементы массива значения которых находятся в заданном интервале - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Пожалуйста, помогите найти ошибку. При А>0 всё работает нормально, а при А<=0 прога зацикливается.
#include <stdlib.h>
#define N 10
int main ()
{
  int a[N], i, A, B, j, z=1;
  for (i=0; i<N; i++)
  {
      a[i]=rand()%10-5;
      printf ("%d \t", a[i]);
  }
  printf("a = ");
  scanf("%d",&A);
  printf("b = ");
  scanf("%d",&B);
 
  while (z!=0){
    z=0;
    for (i=0; i<N; i++)
      if (a[i]>=A && a[i]<=B) {
          z++;
          for (j=i; j<N-1; j++) a[j]=a[j+1];
          a[N-1]=0;
      }
 
  }
  for (i=0; i<N; i++) printf ("%d \t", a[i]);
}

Решение задачи: «Удалить элементы массива значения которых находятся в заданном интервале»

textual
Листинг программы
int n=N;
for (i=0; i<n; i++)
  if (a[i]>=A && a[i]<=B) 
  {
     for (j=i; j<n-1; j++) 
       a[j]=a[j+1];
     n--; // количество элементов уменьшилось на 1
     i--; // на текущей позиции новый элемент, его тоже надо проверить
  }
for (i=0; i<n; i++) 
   printf ("%d \t", a[i]);

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. В первой строке подставляется значение N в переменную n.
  2. Запускается цикл от 0 до n-1.
  3. Для каждого элемента массива проверяется условие: значение элемента должно быть больше или равно A и меньше или равно B.
  4. Если условие выполняется, то запускается внутренний цикл, который перемещает все элементы, начиная с текущей позиции и до n-2, на одну позицию вправо.
  5. Переменная n уменьшается на 1, так как один элемент удален.
  6. Условие проверки текущего элемента также перемещается на одну позицию вправо.
  7. После завершения внешнего цикла выводится на экран каждый элемент массива с помощью функции printf. В результате выполнения этого кода элементы массива, значения которых находятся в заданном интервале, будут удалены.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы