Написать функцию, которая вставляет в массив элемент с заданным индексом и заданным значением - C (СИ)
Формулировка задачи:
Мне нужно написать функцию, которая вставляет в массив элемент с заданным индексом и заданным значением. Лишний элемент должен пропасть. Но моя программа заменяет элемент т.е. в моем массиве 0 1 2 3 4 7 6 7 8 9, а нужно 0 1 2 3 4 7 5 6 7 8. Заранее очень благодарен за ответ.
Листинг программы
- #include <stdio.h>
- #define N 10
- void zamena(int index, int element, int *a);
- int main(void)
- {
- int a[N];
- int element, index, i;
- for(i = 0; i < N; i++)
- a[i] = i;
- printf("Enter index and element:");
- scanf_s("%d %d", &index, &element);
- zamena(index, element, a);
- for(i = 0; i < N; i++)
- printf(" %d ", a[i]);
- }
- void zamena (int index, int element, int *a)
- {
- a[index] = element;
- }
Или можете написать, как сдвинуть массив и вставить туда элемент.
Решение задачи: «Написать функцию, которая вставляет в массив элемент с заданным индексом и заданным значением»
textual
Листинг программы
- zamena(index, element, a, N);
- void zamena (int index, int element, int *a, int N)
- {
- for (int i=N-1;i>index;i--) a[i]=a[i-1];
- a[index] = element;
- }
Объяснение кода листинга программы
- Входные параметры функции zamena:
- index - индекс, на который нужно вставить элемент
- element - элемент, который нужно вставить
- a - массив, в который нужно вставить элемент
- N - размер массива
- Выходные параметры функции zamena:
- None
- Вложенный цикл for, который выполняется от N-1 до index включительно.
- Переменная i используется как индекс для обращения к элементам массива a.
- Значение a[i] присваивается значению a[i-1], что позволяет сдвинуть все элементы массива вправо от индекса index на одну позицию.
- После завершения вложенного цикла, значение element присваивается элементу массива a с индексом index.
- Возвращаемое значение функции zamena:
- None
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д