标题:[求助]我有一个结构体数组,如何写如下删除函数?
取消只看楼主
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
结帖率:100%
 问题点数:0 回复次数:4 
[求助]我有一个结构体数组,如何写如下删除函数?
我有一结构体如下:
const int M=100;
struct members
{
char name[10];
char sex[5];
int money;
int member;
}mem[M];
说明:
name (名字),sex(性别),money(工资),member(工号)
然后呢,我输入了一些数据如下:
1 guwenjie nan 1300
8 lifei nan 1200
5 heben nan 1500
2 lihuifang nv 1000
假设,我现在要删除工号为2的人的信息,该如何写这样一个函数?
正在郁闷中。。。。。。。
搜索更多相关主题的帖子: 结构体 函数 工资 nan name 
2007-10-11 22:01
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
我也知道是这样,关键是我不知道如何表达。还烦请各们指点迷津
删除后应该输出如下:
1 guwenjie nan 1300
8 lifei nan 1200
5 heben nan 1500
的确,不用保留2的位置,但我不想把它清0,就删除就行了。
我用的是顺序表做的,不用链表。

~~我的明天我知道~~
2007-10-11 22:24
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
我也知道用链表来实现删除操作是很简单的,可关键的是,我现在是用顺序表做的好不好。所以,麻烦在看看吧。

~~我的明天我知道~~
2007-10-11 22:35
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
谢谢楼上的同学哦。。。
不过,我说过了,我是用顺序表做的,没有用链表。这个用链表做的,我已经做过了,而且验证是的。
我刚写了一个用顺序表做的删除模块,不过有一点小问题。在看看吧。。。。。。


/*删除信息模块*/
void dele()
{
FILE *fp;
int member,i;
char a[20];
fp=fopen("members.txt","r+");
if(fp==NULL)
{
printf("Can't create file:members.txt\n");
exit(0);
}
printf("请输入要删除的工号:");
scanf("%d",&member);
fflush(stdin);
if (member<0||member>N)
{
printf("\n删除的位置不存在!");exit(-1);
}
for (i=member;i<N-1;i++)
{
mem[i].member=mem[i+1].member;
strcpy(a,mem[i+1].name);
strcpy(mem[i].name,a);
//mem[i].name=mem[i+1].name;
strcpy(a,mem[i+1].sex);
strcpy(mem[i].sex,a);
//mem[i].sex=mem[i+1].sex;
mem[i].money=mem[i+1].money;
}
fwrite(mem,sizeof(struct members),N,fp);
rewind(fp);
fclose(fp);
//printf("*********************\n");
}
说明:
文本里的内容为:
1 guwenjie nan 1300
8 lifei nan 1200
5 heben nan 1500
2 lihuifang nv 1000
要输出的结果应该是:
1 guwenjie nan 1300
8 lifei nan 1200
5 heben nan 1500
哪位能不能用帮我纠正一下我的程序。。。。(还有不明白的地方,看贴子的开头)

~~我的明天我知道~~
2007-10-12 10:37
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
哦。。。明白了

~~我的明天我知道~~
2007-10-12 14:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-176897-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.578037 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved