C Program to Delete an Element from an Array

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

Delete an Element from Array

Let's first create a program that deletes the desired element from the list and prints the message like, 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 build and run under 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 delete from the given array. Here is its sample run:

c delete element in array

Program Explained

  • Here all the 10 array elements gets stored in arr[] in a way that
    • First number goes to arr[0]
    • Second number goes to arr[1]
    • and so on
  • Create a for loop, that runs for 10 times to compare the given element with each and every element available in the list
  • If the given element (to be delete) gets matched with a number at any index say 4
  • Then move all the element one index back from here. Like
    • Element at index 5 gets moved to 4
    • Element at index 6 gets moved to 5
    • and so on
  • Initialize 1 to found, only to check whether this if block gets executed or not. If executed, then given number gets found in the list. Otherwise, does not found
  • Then decrement the value of i to check from one index back (from where it starts before entering the inner for loop
  • Because, may be the new element at index 4 equals to the number again
  • Also decrement the value of size, because 1 element gets deleted
  • And continue the same process until compared with all the elements of given array
  • Now check whether the value of found is 0 or not
  • If its value is 0, then no any matched gets found. So print a message says element does not exist
  • Otherwise, if its value is not zero, then it means, its value is 1, and print the value like element gets deleted. That's it
  • Don't forgot to initialize 0 to found at start of the program

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 Element and Print 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 its two sample run. The first one is:

delete element from array c

As you can see from above snapshot, there are two times the element 2 is found in the list, and it gets deleted. Now let's check it out, what if all the elements of array are same. And user enters the same element to be delete as shown here:

delete element array c

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

Same Program in Other Languages

C Online Test


« Previous Program Next Program »



Like/Share Us on Facebook 😋