大家都不愿意写啊,那请帮我改改吧。下面的是我写的,查找和删除都有问题,还有修改的函数没写,大家帮帮忙吧,拜托了!我急用的。
#include<stdio.h>
#define MAXSIZE 40
typedef struct Student
{
char num[20];
//学号
char name[20];
//姓名
int last;
}STU;
STU students[MAXSIZE];
//输入学生基本信息记录
void entre(int k)
{
int i;
printf("学号\t姓名\n");
for(i=0;i<k;i++)
{
scanf("%s%s",&students[i].num,&students[i].name);
}
printf("\n");
}
//插入学生信息
void insert(int i)
{
scanf("%s%s",&students[i].num,&students[i].name);
}
//查找操作函数
int search(char s[20])
{
int i=0;
for(;i<MAXSIZE;i++)
{
if(strcmp(s,students[i].name)==0)
return i;
else
return -1;
}
}
//删除操作函数
void _delete()
{
int i,j;
char s[20];
scanf("%s",&s);
for(i=0;i<MAXSIZE;i++)
{
if(strcmp(s,students[i].name)==0)
{
for(j=0;j<MAXSIZE-i;j++)
{
students[i]=students[i+1];
}
}
}
}
//输出学生信息函数
void display(int k)
{
printf("%s\t%s\n",students[k].num,students[k].name);
}
//主函数
void main()
{
struct Student ls;
int j,k,m;
char s[20];
printf("请输入学生人数:(人数须小于%d)\n",MAXSIZE);
scanf("%d",&k);
printf("请输入学生记录:\n");
entre(k);
ls.last=k;
for (j=0;j<ls.last;j++)
{
display(j);
}
printf("请输入插入的学生信息:\n");
printf("学号\t姓名\n");
insert(ls.last+1);
display(ls.last+1);
printf("请输入要查找的学生姓名:\n");
scanf("%s",&s);
m=search(s);
if(m==-1)
printf("查找失败!\n");
else
display(m);
printf("请输入要删除的学生姓名:\n");
_delete();
for (j=0;j<ls.last;j++)
{
display(j);
}
}
[
本帖最后由 lyjf110 于 2010-1-20 13:27 编辑 ]