C 语言删除数组元素程序

如何编写 C 语言程序,使用 for 循环和 if else 语句删除数组中的元素,并附带示例?

使用 If 语句删除数组元素的 C 语言程序

此删除元素的程序允许用户输入一维数组的大小和行元素。接下来,我们使用 For 循环在指定的索引位置查找并删除元素。

#include <stdio.h>
 
int main()
{
	int Array[10], Position, i, Size;
	
	printf("\n Please Enter Number of elements in an array  :   ");
	scanf("%d", &Size);
	
	printf("\n Please Enter %d elements of an Array \n", Size);
	for (i = 0; i < Size; i++)
	{
    	scanf("%d", &Array[i]);
   	}     
 
  	printf("\n Please Enter a Valid Index Position of a Element that you want to Delete  :  ");
  	scanf("%d", &Position);
  	
	if(Position < 0 || Position >= Size)
  	{
  		printf("\n Please Enter a Valid Index Position between 0 and %d", Size-1);
  	}
  	else
  	{
  		for (i = Position; i < Size; i++)
   		{
	    	Array[i] = Array[i + 1];
   		}
   		Size--;
	}
 	printf("\n Final Array after Deleteing an Array Elemnt is:\n");
 	for (i = 0; i < Size; i++)
  	{
 		printf("%d\t", Array[i]);
  	}	     
 	return 0;
}
C Program to Delete an Element in an Array 1

此程序要求用户输入索引位置。a[10] 表示索引位置从 0 开始到 9 结束。

首先,我们使用 If 语句检查用户指定的索引位置是否小于 0 或大于等于大小。如果为真,则会打印错误消息。否则,它将进入 Else 块。

在 Else 块中,我们使用了 For 循环。它将确保位置值介于位置和 一维数组的最大大小值之间。

用户为删除数组元素示例程序输入的值:大小 = 4,元素 = 25 69 73 224,位置 = 2。If 语句内的条件为 False。因此,C 编程编译器将进入 Else 块

For 循环 – 第一次迭代:for(i = 2; 2 < 4; 2++)
条件为 True
Array[i] = Array[i + 1]
[2] = [2 + 1]
这意味着 224

第二次迭代:for(i = 3; 3 < 4; 3++)
条件为 True
[3] = [3 + 1] // 此位置没有值

接下来,我们使用 Size– 来调整数组大小。这意味着 Size 将变为 3,最后将是 25 69 224。让我尝试删除不存在的项目


 Please Enter Number of elements in an array  :   4

 Please Enter 4 elements of an Array 
25 46 78 96

 Please Enter a Valid Index Position of a Element that you want to Delete  :  4

 Please Enter a Valid Index Position between 0 and 3
 Final Array after Deleteing an Array Elemnt is:
25	46	78	96	

第三个输出


 Please Enter Number of elements in an array  :   5

 Please Enter 5 elements of an Array 
23 56 89 71 256

 Please Enter a Valid Index Position of a Element that you want to Delete  :  0

 Final Array after Deleteing an Array Elemnt is:
56	89	71	256	

使用 for 循环删除数组元素的 C 语言程序

程序与上面相同。但是,这次我们要求用户指定位置(而不是实际索引位置)。这意味着如果用户输入 4,则此程序将删除索引位置 3 的值。

#include <stdio.h>
 
int main()
{
	int Array[10], Position, i, Size;
	
	printf("\n Please Enter Number of elements  :   ");
	scanf("%d", &Size);
	
	printf("\n Please Enter %d elements \n", Size);
	for (i = 0; i < Size; i++)
	{
    	scanf("%d", &Array[i]);
   	}     
 
  	printf("\n Please Enter the location of a Element that you want to Delete  :  ");
  	scanf("%d", &Position);
  	
	if(Position <= 0 || Position > Size)
  	{
  		printf("\n Please Enter a Valid Position between 1 and %d", Size);
  	}
  	else
  	{
  		for (i = Position-1; i < Size; i++)
   		{
	    	Array[i] = Array[i + 1];
   		}
   		Size--;
	}
 	printf("\n Final one after Deleting is:\n");
 	for (i = 0; i < Size; i++)
  	{
 		printf("%d\t", Array[i]);
  	}	     
 	return 0;
}
Delete an Element in an Array using for loop

第二个输出


 Please Enter Number of elements  :   4

 Please Enter 4 elements
99 75 35 55

 Please Enter the location of a Element that you want to Delete  :  4

 Final one after Deleting is:
99	75	35	

第三个输出

 Please Enter Number of elements  :   5

 Please Enter 5 elements
25 698 10 55 9

 Please Enter the location of a Element that you want to Delete  :  0

 Please Enter a Valid Position between 1 and 5
 Final one after Deleting is:
25	698	10	55	9