高分求教C语言的编程问题

[复制链接]
查看11 | 回复3 | 2009-6-19 00:52:14 | 显示全部楼层 |阅读模式
我写了如下的结构体
struct student
{char num[10];
char name[10];
int score[3];
float ave;
} stu[120];
我想将第10个学生的所有数据删除,然后将第11个学生的所有资料移到原来第10个学生的地址处,再将第12个学生的所有资料移到原来第11个学生的地址处。如此下去,直至将120个学生的相关资料移到119位为止。若不用链表,该怎样实现呢?
若得到满意答案,外加100分

回复

使用道具 举报

千问 | 2009-6-19 00:52:14 | 显示全部楼层
int i;int index=120;//定义一个变量来存放stu[]中的记录个数,假设目前有120个记录,也就是stu中没有空的元素index--;//因为删除了一个stu[]元素,所以将stu[]的长度减1for(i=9;i<index;i++)//这里可以直接用119代替index,但是实际应用的时候可能要删除若干条stu记录,也可能添加若干条stu记录,所以需要一个变量(index)来记录stu[]中的有效记录个数{//复制部分用楼上的更加简洁和方便
strcpy(str.num,str[i+1].num);//复制char数组需要用strcpy函数
strcpy(str.name,str[i+...
回复

使用道具 举报

千问 | 2009-6-19 00:52:14 | 显示全部楼层
int i;struct student *ptr;ptr = &stu[9];for (i = 9; i < 119; i++){ *ptr = *(ptr + 1); ptr++;]...
回复

使用道具 举报

千问 | 2009-6-19 00:52:14 | 显示全部楼层
不用链表就用用循环实现吧...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行