使用指针删除数组元素的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
广告