C语言改下这个函数,看清楚是要你改, 不是要你说

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:15:10
struct xueshengbiao *shanchu(struct xueshengbiao *head) //删除函数//
{struct xueshengbiao *p1,*p2;
int num,n;
char xingming[10];
p1=head;
printf("按1使用学号删除,按2使用姓名删除:");
scanf("%d",&n);
if(n==1)
{printf("现有的学生(学号代表学生)如下:\n");
while(p1!=NULL)
{printf("%d,",p1->xuehao);
p1=p1->next;
}
printf("\n");
p1=head;
printf("请输入你要删除学生信息的学号:\n");
scanf("%d",&num);
while(p1->xuehao!=num&&p1->next!=NULL) //查找要删除链表//
{p2=p1;p1=p1->next;}
if(num==p1->xuehao)
{if(p1==head)head=p1->next; //删除第一个链表//
else p2->next=p1->next; //最后一个链表//
return(head);
}
}
else
if(n==2)
{printf("现有的学生(姓名代表学生

还是再做一次好事吧....

首先
#include <string.h>
然后
while(p1->xingming!=xingming&&p1->next!=NULL)
改成
while(strcmp(p1->xingming,xingming)!=0&&p1->next!=NULL)

if(xingming==p1->xingming)
改成
if(strcmp(xingming,p1->xingming)==0)

保持尴尬的;零回答

说明要改成怎样的

"字符串"不能= !=号来判断用strcmp函数
strcmp(a,b)如果相等返回0 不相等返回1