Удалить из последовательности элемент с номером k - C (СИ)

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

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

Добрый вечер, срочно нужна помощь с заданием. Нужно написать программу на си, в которой: даны действительные числа а1,…, аn, p, натуральное число k (а1 <= а2 <=…<= аk…<= аn, k <= n). Удалить из а1,…, аn элемент с номером k (т.е. аk) и вставить элемент, равный р, так, чтобы не нарушилась упорядоченность. Так как я на пути изучения си нахожусь на начальном уровне огромная просьба, написать программу не сложно, что бы ее возможно было понять и объяснить преподавателю.

Решение задачи: «Удалить из последовательности элемент с номером k»

textual
Листинг программы
#include <stdio.h>
 
#define N 10
 
int main()
{
   int A[N] = {1, 3, 4, 4, 5, 7, 8, 9, 9, 9};
 
   int i;
   // Вывод
   for (i = 0; i < N; ++i)
   {
      printf("%d ", A[i]);
   }
   printf("\n");
 
   // Индекс элемента для удаление
   int k = 8;
   // Удаление
   for (i = k; i < N-1; ++i)
   {
      A[i] = A[i + 1];
   }
 
   // Число для добавления
   int p = 2;
   // Добавление
   for (i = N; (i > 0) && (A[i - 1] > p); --i)
   {
      A[i] = A[i - 1];
   }
   A[i] = p;
 
   // Вывод
   for (i = 0; i < N; ++i)
   {
      printf("%d ", A[i]);
   }
   printf("\n");
 
   return 0;
}

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

В этом коде определен массив A размером N=10.

  1. В цикле выводятся все элементы массива A.
  2. Затем определяется индекс k=8 элемента для удаления.
  3. Далее в цикле элементы массива A сдвигаются вправо, начиная с элемента с индексом k, до тех пор пока не заполнится вся область, в которой находился удаленный элемент.
  4. Затем определяется число p=2 для добавления.
  5. В цикле, пока не будет найден элемент, больший чем p, элементы массива A сдвигаются влево, начиная с последнего элемента, до тех пор пока не будет найден элемент, меньший или равный p.
  6. Затем элемент p добавляется в массив A в найденную позицию.
  7. В цикле выводятся все элементы массива A.
  8. Код завершается возвратом 0, что означает успешное выполнение.

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


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

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

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