C Program to Delete an Element from an Array

In this article, you will learn and get code for deleting an element from an array given by the user (at run-time).

Delete an element from an array

Let's first create a program that deletes the desired element from the list and prints the message "The element is deleted."

#include<stdio.h>
#include<conio.h>
int main()
{
    int arr[10], del, i, j, found=0, size;
    printf("Enter 10 Array Elements: ");
    for(i=0; i<10; i++)
        scanf("%d", &arr[i]);
    printf("Enter Element to be Delete: ");
    scanf("%d", &del);
    size = 10;
    for(i=0; i<size; i++)
    {
        if(arr[i]==del)
        {
            for(j=i; j<(size-1); j++)
                arr[j] = arr[j+1];
            found=1;
            i--;
            size--;
        }
    }
    if(found==0)
        printf("\nElement does not found in the list!");
    else
        printf("\nElement Deleted Successfully!");
    getch();
    return 0;
}

This program was built and runs under the Code::Blocks IDE. Here is its sample run:

c program delete element from array

Now supply any 10 numbers and then an element that has to be deleted from the given array. Here is its sample run:

c delete element in array

Program Explained

As you can see, the element gets deleted. But to clarify, whether it actually deletes the element or not, Then we have to print the array after removing the element. Let's create a program to solve this problem.

Delete an Element and Print a New Array

Here is the complete version of the above program.

#include<stdio.h>
#include<conio.h>
int main()
{
    int arr[50], size, del, i, j, found=0;
    printf("How many element to store in Array ? ");
    scanf("%d", &size);
    printf("Enter %d Array Elements: ", size);
    for(i=0; i<size; i++)
        scanf("%d", &arr[i]);
    printf("Enter Element to be Delete: ");
    scanf("%d", &del);
    for(i=0; i<size; i++)
    {
        if(arr[i]==del)
        {
            for(j=i; j<(size-1); j++)
                arr[j] = arr[j+1];
            found=1;
            i--;
            size--;
        }
    }
    if(found==0)
        printf("\nElement does not found in the list!");
    else
    {
        printf("\nElement Deleted Successfully!");
        printf("\nNew Array is:\n");
        if(size==0)
            printf("Empty!");
        else
        {
            for(i=0; i<size; i++)
                printf("%d  ", arr[i]);
        }
    }
    getch();
    return 0;
}

Let's take a look at its two sample runs. The first one is:

delete element from array c

As shown in the preceding screenshot, element 2 is found twice in the list and is deleted. Let's put it to the test: what if all of the array's elements are the same? And the user enters the same element to be deleted, as shown here:

delete element array c

As you can see, since all the elements of the array are the same, that is 3. And the user enters 3 to be deleted; therefore, after deleting 3, the array becomes empty.

The same program in different languages

C Quiz


« Previous Program Next Program »