{ char c[20];int d=0; printf("请输入姓名:\n"); scanf("%s",c); stu *p=head->next; while(p!=NULL) { if(strcmp(p->name,c)==0) { printf("该学生信息已找到!\n"); printf("学号:%d,名字:%s,性别:%s,年龄:%d,籍贯:%s,系别:%s,专业:%s,班级:%d,学籍变化:%s\n", p->id,p->name,p->gender,p->age,p->native_place,p->department,p->specialty,p->cla,p->xjbh); d=d+1; } p=p->next; } if(d=0) { printf("\n该学生信息不存在!\n"); } }这段代码哪里错了
时间: 2023-12-03 21:45:46 浏览: 115
408c语言基础-进制转换-数据基本类型关于int,char,float.printf.scanf
在判断是否存在该学生信息时,应该使用`if(d==0)`而不是`if(d=0)`,因为`=`是赋值操作符,而`==`才是判断相等的操作符。因此,正确的代码应该是:
```
char c[20];
int d = 0;
printf("请输入姓名:\n");
scanf("%s", c);
stu *p = head->next;
while (p != NULL) {
if (strcmp(p->name, c) == 0) {
printf("该学生信息已找到!\n");
printf("学号:%d,名字:%s,性别:%s,年龄:%d,籍贯:%s,系别:%s,专业:%s,班级:%d,学籍变化:%s\n",
p->id, p->name, p->gender, p->age, p->native_place, p->department, p->specialty, p->cla, p->xjbh);
d = d + 1;
}
p = p->next;
}
if (d == 0) {
printf("\n该学生信息不存在!\n");
}
```
阅读全文