C Program for insertion and deletion of element in an array (using pointer)

#include <stdio.h>

int search(int *a, int size, int elem)
{
    int i;
    for (i = 0; i < size; i++)
    {
        if (elem == *(a + i))
        {
            return i;
        }
    }

    return -1;
}

void delete (int *a, int size, int elem)
{
    int i, index = search(a, size, elem);
    a += index;
    for (i = index; i < size - 1; i++)
    {
        *a = *(a + 1);
        a++;
    }
    size--;
    a -= size;
    for (i = 0; i < size; i++)
    {
        printf("%d ", *(a + i));
    }
}

void insert(int *a, int size, int elem, int pos)
{
    int i = 0;
    a += size;
    for (i = size; i >= pos; i--)
    {
        *a = *(a - 1);
        a--;
    }
    *a = elem;
    a -= pos - 1;
    size++;

    for (i = 0; i < size; i++)
    {
        printf("%d ", *(a + i));
    }
}

int main()
{
    int a[100], size, i, elem, pos;
    char ch;
    printf("Enter size of array");
    scanf("%d", &size);
    for (i = 0; i < size; i++)
    {
        printf("Enter %d element", i + 1);
        scanf("%d", &a[i]);
    }
    printf("Enter i to insert/ d to delete");
    scanf(" %c", &ch);
    if (ch == 'i')
    {
        printf("Enter element to insert");
        scanf("%d", &elem);
        printf("Enter positon");
        scanf("%d", &pos);
        insert(a, size, elem, pos);
    }
    else if (ch == 'd')
    {
        printf("Enter element to delete");
        scanf("%d", &elem);
        delete (a, size, elem);
    }
    else
    {
        printf("Wrong choice");
    }

    return 0;
}
Insertion
Deletion