Write a C program to delete an element from an array at specified position. Logic to remove an element from any given position in an array. The program should also print an error message if the delete position is invalid.
Code:
#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;
}