C++删除数组元素的问题

qq_30935709 2016-10-19 06:49:23
这是我的代码,目的是删除数组a中的一个元素,然后在执行完这个删除函数 delete(a,x,elenum);之后,输出数组的全部元素还是和原来一样,例如原本是1 2 3 4 5,然后我输入删除3,然后输出还是1 2 3 4 5.这是什么问题?怎么解决?
#include <iostream>
using namespace std;
void deletedata(int a[],int x,int *elenum) //x为要删除的数组元素
{
int i=0;
while(a[i]!=x&&i!=*elenum)
i++;
if(i==*elenum)
{
cout<<"数组中没有这个数据";
}
else
{
while(i!=(*elenum-1))
{
a[i]=a[i+1];
i=i+1;
}
*elenum--;
}
}
void show(int a[],int *elenum) //输出数组所以元素
{
int i=0;
while(i<*elenum)
{
cout<<a[i]<<' ';
i++;
}
}

int main()
{
int arrsize=100; //arrsize为数组的最大储存
int *elenum,i=0; //elenum为数组的前elenum个分量
int a[arrsize];
cout<<"请输入数组的元素个数:";
cin>>*elenum;
cout<<"请递增有序输入数组元素:";
while(i<*elenum)
{
cin>>a[i];
i++;
}
cout<<endl;
show(a,elenum);
cout<<"请输入要删除的元素:";
int x;
cin>>x;
delete(a,x,elenum);
cout<<"删除后的元素序列为:";
show(a,elenum);
}
...全文
478 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2016-10-19
  • 打赏
  • 举报
回复
delete(a,x,elenum); 改成: deletedata(a,x,elenum);

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧