Написать функцию, которая вставляет в массив элемент с заданным индексом и заданным значением - 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