c++数组删除指定元素

 我来答
刺友互
高粉答主

2019-07-03 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:72.5万
展开全部

1、打开Delphi7集成开发环境,在默认工程的Form1窗体放一个Button1按钮和一个Memo1控件。

2、在Unit1.pas源代码文件的implementation定义一个字符串类型动态数组类型,并声明这种类型的一个变量。

3、在Form1的OnCreare事件方法,写如下代码:procedure TForm1.FormCreate(Sender: TObject);var  i:integer;begin。

4、在Unit1.pas源代码的implementation中定义一个删除动态数组指定元素的过程。

5、双击Button1按钮进入OnClick事件方法。

6、F9运行程序,Memo1显示字符串动态数组内容。

7、点击Button1删除了指定第二个元素,成功。

爱教育爱学习
高粉答主

2019-10-26 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112734

向TA提问 私信TA
展开全部

//浮点数型数组(以double型数组为例)

intremoveGivenValue(double*pArray,constintnLen,constdoublelfGivenValue)

{

if(pArray==NULL||nLen<1)

return0;

intnValidLen=0;

for(inti=0;i<nLen;++i)

{

if(fabs(pArray[i]-lfGivenValue)<0.000001)

continue;

pArray[nValidLen++]=pArray[i];

}

returnnValidLen;

}

//整型数组

intremoveGivenValue(int*pArray,constintnLen,constintnGivenValue)

{

if(pArray==NULL||nLen<1)

return0;

intnValidLen=0;

for(inti=0;i<nLen;++i)

{

if(pArray[i]==nGivenValue)

continue;

pArray[nValidLen++]=pArray[i];

}

returnnValidLen;

}

扩展资料

C++数组指针用法

将a理解为指向数组头的一个指针,这样就好理解了。理解了之后确实好像豁然开朗的样子。这样a[5]就等于*(a+5),也就相当于将数组头指针向后推5个位置,然后取到该位置的数据了。

#include<iostream>

#include<typeinfo>

usingnamespacestd;

#definetype(a)typeid(a).name()

intmain(){

inta[10]={1,2,3,4,5,6,7,8,9,10};

cout<<"a="<<a<<"&a="<<&a<<endl;

int*p1=(int*)(&a+1);

int*p2=(int*)(a+1);

cout<<"*(p1-1)="<<*(p1-1)<<"*(p2-1)="<<*(p2-1)<<endl;

cout<<"sizeof(a)="<<sizeof(a)<<"sizeof(&a)="<<sizeof(&a)<<endl;

cout<<"TypeOf(a)="<<type(a)<<"TypeOf(&a)="<<type(&a)<<endl;

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰封一万年吧9c
2017-04-08
知道答主
回答量:5
采纳率:0%
帮助的人:4821
展开全部
动态数组删除指定元素

int n,i,m;
int *p=new int[20]; ///申请内存20*4个字节
cout<<"输入数组长度:";
cin>>n;
for(i=0;i<n;i++) ///输入数组元素
cin>>p[i];
for(i=0;i<n;i++)
cout<<p[i]<<" ";
cout<<endl;

cout<<"输入你要删除的元素:";
cin>>m;
for(i=0;i<n;i++) ///删除元素操作
if(p[i]==m)
{
int k=i;
for(i=k;i<n;i++)
p[i]=p[i+1];
n--;
}

for(i=0;i<n;i++) ///输出删除后的数组
cout<<p[i]<<" ";
cout<<endl;
delete[]p; ///释放内存
return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
堵寄灵kO
推荐于2018-02-27 · TA获得超过2370个赞
知道小有建树答主
回答量:588
采纳率:100%
帮助的人:471万
展开全部
int n;
int m;//指定元素
int *array=new int [n];
for(int i=0;i<n;i++)
{
if(array[i]==m)
{
array[i]=array[n-1];
n--;
{
}
追问
不用指针呢
追答
把int *array=new int[n]改成int array [n];就是。
把if(array[i]==m)语句里改成
{
for(int j=i;j<n-1;j++)
{
array[j]=array[j+1];
}
n--
}
这样好点。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式