Example:
Input elements:
10
20
30
40
50
Input position to delete: 2
Output: 10, 30, 40, 50
Required knowledge
Basic C programming, For loop, ArrayBefore you move on to this program you must have basic knowledge about arrays. How to read and print array elements using for loop.
Logic to remove an element from array
Array is a linear data structure. It provides an index based fast mechanism to access its elements. But insertion or deletion from an array is time taking process.Literally speaking there isn't anything such as deleting an element from an array. In general you copy elements of the array towards left. Suppose I say you need to delete the 2nd element from the given array. You will do it as.
Below is the step by step descriptive logic to remove any element from an array.
- Move to the specified location which you want to remove in the given array.
- Copy the next element to the current element of the array. Which is you need to perform array[i] = array[i + 1].
- Repeat the above steps till last element of the array.
- Finally decrement the size of array by one.
Program:
/* * C program to delete an element from array at specified position */ #include <stdio.h> int main() { int arr[100]; int i, n, position; /* * Reads size and elements in array from user */ printf("Enter size of the array : "); scanf("%d", &n); printf("Enter elements in array : "); for(i=0; i<n; i++) { scanf("%d", &arr[i]); } // Reads the position to be deleted from user printf("Enter the element position to delete : "); scanf("%d", &position); // If delete position is invalid if(position==n+1 || position<0) { printf("Invalid position! Please enter position between 1 to %d", n); } else { for(i=position-1; i<n-1; i++) { // Copy next element value to current element arr[i] = arr[i+1]; } // Decrement the size by 1 n--; } // Prints the array after delete operation printf("\nElements of array after delete are : "); for(i=0; i<n; i++) { printf("%d\t", arr[i]); } return 0; }
Output
Enter size of the array : 5
Enter elements in array : 10 20 30 40 50
Enter the element position to delete : 2
Elements of array after delete are : 10 30 40 50
Enter elements in array : 10 20 30 40 50
Enter the element position to delete : 2
Elements of array after delete are : 10 30 40 50
Happy coding ;)