使用指针删除数组元素的C程序

问题

编写一个 C 程序,在运行时由用户从数组中删除一个元素,并在删除后将结果显示在屏幕上。如果删除的元素不在数组中,那么我们需要显示 Invalid Input。

解决方案

数组用于在一个名称下保存一组公共元素。

数组操作如下 -

  • 插入

  • 删除

  • 搜索

算法

参考一种算法在指针的帮助下将元素删除到数组中。

步骤 1 - 声明并读取元素数量。

第 2 步 - 在运行时声明并读取数组大小。

步骤 3 - 输入数组元素。

第 4 步 - 声明一个指针变量。

第 5 步 - 在运行时动态分配内存。

步骤 6 - 输入要删除的元素。

步骤 7 - 删除后,元素向左移动一个位置。

示例

数组大小为:5

数组元素如下 -

1 2 3 4 5

输入要删除的元素的位置:4

输出如下 -

After deletion the array elements are:

1 2 3 5

示例

以下是在指针的帮助下将元素插入数组的 C 程序 -

#include<stdio.h>

#include<stdlib.h>

void delete(int n,int *a,int pos);

int main(){

   int *a,n,i,pos;

   printf("输入数组的大小:");

   scanf("%d",&n);

   a=(int*)malloc(sizeof(int)*n);

   printf("enter the elements:\n");

   for(i=0;i<n;i++){

      scanf("%d",(a+i));

   }

   printf("输入要删除的元素的位置:");

   scanf("%d",&pos);

   delete(n,a,pos);

   return 0;

}

void delete(int n,int *a,int pos){

   int i,j;

   if(pos<=n){

      for(i=pos-1;i<n;i++){

         j=i+1;

         *(a+i)=*(a+j);

      }

      printf("after deletion the array elements is:\n");

      for(i=0;i<n-1;i++){

         printf("%d\n",(*(a+i)));

      }

   }

   else{

      printf("Invalid Input");

   }

}

输出结果

执行上述程序时,它会产生以下输出 -

输入数组的大小:5

enter the elements:

12

34

56

67

78

输入要删除的元素的位置:4

After deletion the array elements are:

12

34

56

78

以上是 使用指针删除数组元素的C程序 的全部内容, 来源链接: utcz.com/z/349148.html

回到顶部