使用指针删除数组元素的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");
}
}
执行上述程序时,它会产生以下输出 -
输入数组的大小:5enter the elements:
12
34
56
67
78
输入要删除的元素的位置:4
After deletion the array elements are:
12
34
56
78
以上是 使用指针删除数组元素的C程序 的全部内容, 来源链接: utcz.com/z/349148.html