结构体问题
题目:建立一学生结构体,学生信息有学号、姓名、出生日期(此为一结构体,有年月日组成)。可保存学生40人。实现:
(1)学生信息的插入;
(2)输入一学生学号,输出该学生信息;
我只能建立一个结构体完成学生信息插入,可是怎么做才能输入一个学生号,输出该学生信息。求大佬帮助。 本帖最后由 jhq999 于 2021-12-24 15:52 编辑
int searth(结构体 *head,int id)//代入head的实参是结构体链表头指针
{
while(head)
{
if(head->id==id)
{
printf("学号:%d\n姓名:%s\n出生日期:%d年%d月%d日“,head->id,head->name,......);
return 1;
}
head=head->next;
}
printf("没找到。");
return 0;
} 这是我的代码
#include <stdio.h>
struct Date
{
int year;
int month;
int day;
};
struct Student
{
int id;
char name;
struct Date birthdayDate;
struct Student *next;
};
int main(void)
{
int i, j, n;
struct Student *headStu;
struct Student stu;
printf("要插入的多少位学生信息(位):");
scanf("%d",&j);
for (i = 1; i <= j; i++)
{
printf("请录入第 %d个学生的数据....\n",i);
printf("请输入学生ID:");
scanf("%d",&stu.id);
printf("请输入学生的姓名:");
scanf("%s",stu.name);
printf("请输入学生的出生日期(yyyy-yy-yy):");
scanf("%d-%d-%d",&stu.birthdayDate.year,&stu.birthdayDate.month,&stu.birthdayDate.day);
printf("\n");
}
printf("请输入你需要查询的学生学号:");
scanf("%d",n);
searth(*headStu, n);
return 0;
}
int searth(struct Student *head, int n)//代入head的实参是结构体链表头指针
{
while(head)
{
if(head->id == n)
{
printf("学号:%d\n 姓名:%s\n",head->id,head->name);
printf("出生日期:%d年%d月%d日",head->birthdayDate.year,head->birthdayDate.month,head->birthdayDate.day);
return 1;
}
head = head -> next;
}
printf("没找到。");
return 0;
}
为什么查询时学号输入对了,但还是输出没找到呢?
页:
[1]