使用指针删除数组元素的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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP