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


问题

编写一个C程序,在运行时由用户删除数组中的一个元素,并在删除后将结果显示在屏幕上。如果要删除的元素不在数组中,则需要显示“无效输入”。

解决方案

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

数组操作如下:

  • 插入
  • 删除
  • 搜索

算法

参考一个算法,使用指针删除数组中的元素。

步骤 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("enter the size of array:");
   scanf("%d",&n);
   a=(int*)malloc(sizeof(int)*n);
   printf("enter the elements:
");    for(i=0;i<n;i++){       scanf("%d",(a+i));    }    printf("enter the position of element to be deleted:");    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:
");       for(i=0;i<n-1;i++){          printf("%d
",(*(a+i)));       }    }    else{       printf("Invalid Input");    } }

输出

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

enter the size of array:5
enter the elements:
12
34
56
67
78
enter the position of element to be deleted:4
After deletion the array elements are:
12
34
56
78

更新于:2021年3月26日

4K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告