//增加
void add(){
printf("增加\n");
//寻找尾巴结点位置
struct Student *student = first;
while (student->next!=NULL){
student = student->next;
}
//创建新的学生
struct Student *student1 = (struct Student *)malloc(sizeof(struct Student));
//定义数据类型
char id[8];
char name[64];
double score[3];
//输入新学生数据
printf("请输入学生学号:");
scanf("%s",&id);
printf("请输入学生姓名:");
scanf("%s",&name);
printf("请输入语文成绩:");
scanf("%lf",&score[0]);
printf("请输入数学成绩:");
scanf("%lf",&score[1]);
printf("请输入C语言成绩:");
scanf("%lf",&score[2]);
//录入
strcpy(student1->id,id);
student1->next = NULL;
strcpy(student1->name,name);
student1->score[0]=score[0];
student1->score[1]=score[1];
student1->score[2]=score[2];
//把新学生添加到链表尾部中
student->next =student1;
length++;
len++;
printf("增加完成\n");
printf("已返回主菜单\n");
printf("*********************************************************\n");
}
回答:你可以遍历一遍查找一下当前输入的学号是否和现有的数据一致即可,可以采用strcmp函数进行判断