永发信息网

C语言结构数组删除!

答案:2  悬赏:50  手机版
解决时间 2021-01-22 19:28
C语言结构数组删除!
最佳答案
对于数组删除,一般就是使用后面数组元素前移的操作,来覆盖前一元素,达到删除的效果。。。。

例如数组a[10],要删除a[5]这个元素,那么只需要把后面的元素前移一位就行了,也就是a[5]=a[6],a[6]=a[7],a[7]=a[8],这样子a[5]这个元素的内容就会被全部抹杀掉了。。。。

不过这里存在一个问题,你一个结构体数组前移的时候,如何判断有多少个元素要前移呢。。。。

所以我的做法是在结构体里面定义一个标示符int flag。。。。

当对这个结构体数组元素赋值时,如a[10].name="KING" 时,那么就是说下标值为10的元素是存在的,赋完值后,来个a[10].flag=1 来标记一下。。。。

这样做的话,我们可以进行这样的删除操作了,如删除下标值为5的元素——
int i=5;
for(int j=i+1;a[j].flag==1;i++,j++)
{
a[i]=a[j];

}
a[i].flag=0;
全部回答
删除操作错了吧!
你怎么把所的记录都复制到同一个记录 i 当中了。
后续的每个记录应该是全部向前一个啊,就是:
j=i; 之后 把记录j+1移动到j就行了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
对联一对什么
下表中对部分化学知识的归纳,有错误的一组是
请问海南省东方市第八中学是第几批学校???
我家用一根2.5平电线作零线,三根2.5平的电线
六谷指的是哪六谷?
冒泡幻想三国OL的自动刷怪软件在哪里下载啊
《聊斋志异·狼三则》中第一则和第三则故事:
推荐几部历史性电视剧。
青岛有什么好玩的娱乐场所?
石灰吟于谦阅读答案
电视安了歌华有线的机顶盒还能安小米盒子吗
区分蚯蚓身体的前端和后端的标志是________,
卡丝面膜说明书上说贴完不用洗脸
下列关于化学反应xA+yB=mC+nD(x、y、m、n为
三线摆实验中如何调平上下圆盘
推荐资讯
宝马530i防盗一直叫 防盗故障上电复位
函数,若方程f(x)=a有两个不相等的实数解,
jboss-as-distribution-6.1.0.Final不能启动
香蜜公主品牌内衣专卖地址有知道的么?有点事
短期日本个人旅游签证购能买单程机票吗
德奈福(今日尊府小区北门向东10米路南德奈福)
斐讯psg1218 最多可以设置多少个ssid,能设不
无线路由器和电信169链接的问题请教.
PA66尼龙棒的介绍
停车场(紫怡华盛家园南)地址有知道的么?有点
镇魂电视剧全集百度云资源,真的拜托那些要关
高炉炼铁中碳的作用
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?