Вставка/удаление элемента в массиве, вывод результата - 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; }
Объяснение кода листинга программы
- Программа включает в себя 4 функции:
Print()
- выводит элементы массива на экранInsertValue()
- вставляет значение в массив на указанную позициюRemoveValue()
- удаляет элемент из массива на указанной позицииmain()
- основная функция, в которой происходит использование остальных функций
- Массив
array
объявлен в функцииmain()
, его размер равен 4. - В функции
main()
сначала выводится начальное содержимое массива на экран с помощью функцииPrint()
. - Затем в функцию
InsertValue()
передаются параметры:array
- указатель на массивsize
- размер массиваindex
- позиция, на которую необходимо вставить значениеvalue
- значение, которое необходимо вставить в массив Функция возвращает новое значение размера массива.
- После вызова функции
InsertValue()
массивarray
увеличивается на 1 элемент, его новый размер равен 5. - Затем снова вызывается функция
Print()
, чтобы вывести обновленное содержимое массива на экран. - Далее в функцию
RemoveValue()
передаются параметры:array
- указатель на массивsize
- размер массиваindex
- позиция, элемент с которой необходимо удалить Функция возвращает новое значение размера массива.
- После вызова функции
RemoveValue()
массивarray
уменьшается на 1 элемент, его новый размер равен 4. - В конце функции
main()
возвращается 0, что означает успешный конец работы программы.