鱼C论坛

 找回密码
 立即注册
查看: 773|回复: 2

结构体问题

[复制链接]
发表于 2021-12-24 15:29:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:
建立一学生结构体,学生信息有学号、姓名、出生日期(此为一结构体,有年月日组成)。可保存学生40人。实现:
(1)学生信息的插入;
(2)输入一学生学号,输出该学生信息;

我只能建立一个结构体完成学生信息插入,可是怎么做才能输入一个学生号,输出该学生信息。求大佬帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-24 15:49:28 | 显示全部楼层
本帖最后由 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-25 12:11:56 | 显示全部楼层
这是我的代码
#include <stdio.h>

struct Date
{
        int year;
        int month;
        int day;        
};

struct Student
{
        int id;
        char name[4];
        struct Date birthdayDate;
        struct Student *next;
};

int main(void)
{
        int i, j, n;
        struct Student *headStu;
        
        struct Student stu[40];
        
        printf("要插入的多少位学生信息(位):");
        scanf("%d",&j);
        
        for (i = 1; i <= j; i++)
        {
                printf("请录入第 %d个学生的数据....\n",i);
                
                printf("请输入学生ID:");
                scanf("%d",&stu[j].id);
                
                printf("请输入学生的姓名:");
                scanf("%s",stu[j].name);
                
                printf("请输入学生的出生日期(yyyy-yy-yy):");
                scanf("%d-%d-%d",&stu[j].birthdayDate.year,&stu[j].birthdayDate.month,&stu[j].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;
}
为什么查询时学号输入对了,但还是输出没找到呢?
QQ截图20211225120836.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-29 19:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表