Вставка/удаление элемента в массиве, вывод результата - C (СИ)

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

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

Нужно сделать 3 задачки с масивами : 1.Print которая распечатывает элементы массива 2.Insert Value - вставляет новый элемент по заданному индексу например, если есть массив 5 2 3 , вставить 7 по индексу 0, то должен получить 7523 3.RemoveValue - удаляет элемент в массиве, который размещен на определенном индексе например, 4 7 8 9 удалить элемент на индексе 0, получишь 7 8 9 Как решить на Си я не знаю, помогите решить..
1 сделала проверьте , правильно ли
int Print(char* array, unsigned size)
{
    for (unsigned index = 0; index < size; ++index){
        printf("%c", array[index]);
    }
 
}

Решение задачи: «Вставка/удаление элемента в массиве, вывод результата»

textual
Листинг программы
#include <stdio.h>
 
//-----------------------------------------------------------------------------
void Print(int array[], unsigned size) {
    unsigned i;
    for (i = 0; i < size; ++i) {
        printf("%d ", array[i]);
    }
    printf("\n");
}
//-----------------------------------------------------------------------------
unsigned InsertValue(int array[], unsigned size, unsigned index, int value) {
    if (size < index) {
        return size;
    }
    unsigned i;
    for (i = size; index < i; --i) {
        array[i] = array[i - 1];
    }
    array[index] = value;
 
    return size + 1;
}
//-----------------------------------------------------------------------------
unsigned RemoveValue(int array[], unsigned size, unsigned index) {
    if (size == 0 || size <= index) {
        return size;
    }
    unsigned i;
    for (i = index; i < size - 1; ++i) {
        array[i] = array[i + 1];
    }
 
    return size - 1;
}
//-----------------------------------------------------------------------------
int main() {
    int array[4] = {1, 2, 3};
    unsigned size = sizeof(array) / sizeof(*array) - 1;
 
    Print(array, size);
 
    size = InsertValue(array, size, 0, 4);
 
    Print(array, size);
 
    size = RemoveValue(array, size, 3);
 
    Print(array, size);
 
    return 0;
}

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

  1. Программа включает в себя 4 функции:
    • Print() - выводит элементы массива на экран
    • InsertValue() - вставляет значение в массив на указанную позицию
    • RemoveValue() - удаляет элемент из массива на указанной позиции
    • main() - основная функция, в которой происходит использование остальных функций
  2. Массив array объявлен в функции main(), его размер равен 4.
  3. В функции main() сначала выводится начальное содержимое массива на экран с помощью функции Print().
  4. Затем в функцию InsertValue() передаются параметры:
    • array - указатель на массив
    • size - размер массива
    • index - позиция, на которую необходимо вставить значение
    • value - значение, которое необходимо вставить в массив Функция возвращает новое значение размера массива.
  5. После вызова функции InsertValue() массив array увеличивается на 1 элемент, его новый размер равен 5.
  6. Затем снова вызывается функция Print(), чтобы вывести обновленное содержимое массива на экран.
  7. Далее в функцию RemoveValue() передаются параметры:
    • array - указатель на массив
    • size - размер массива
    • index - позиция, элемент с которой необходимо удалить Функция возвращает новое значение размера массива.
  8. После вызова функции RemoveValue() массив array уменьшается на 1 элемент, его новый размер равен 4.
  9. В конце функции main() возвращается 0, что означает успешный конец работы программы.

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

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