鱼C论坛

 找回密码
 立即注册
查看: 751|回复: 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 编辑
  1. int searth(结构体 *head,int id)//代入head的实参是结构体链表头指针
  2. {
  3.      while(head)
  4.      {
  5.           if(head->id==id)
  6.           {
  7.               printf("学号:%d\n姓名:%s\n出生日期:%d年%d月%d日“,head->id,head->name,......);
  8.               return 1;
  9.            }
  10.           head=head->next;
  11.       }
  12.       printf("没找到。");
  13.       return 0;
  14. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

  2. struct Date
  3. {
  4.         int year;
  5.         int month;
  6.         int day;       
  7. };

  8. struct Student
  9. {
  10.         int id;
  11.         char name[4];
  12.         struct Date birthdayDate;
  13.         struct Student *next;
  14. };

  15. int main(void)
  16. {
  17.         int i, j, n;
  18.         struct Student *headStu;
  19.        
  20.         struct Student stu[40];
  21.        
  22.         printf("要插入的多少位学生信息(位):");
  23.         scanf("%d",&j);
  24.        
  25.         for (i = 1; i <= j; i++)
  26.         {
  27.                 printf("请录入第 %d个学生的数据....\n",i);
  28.                
  29.                 printf("请输入学生ID:");
  30.                 scanf("%d",&stu[j].id);
  31.                
  32.                 printf("请输入学生的姓名:");
  33.                 scanf("%s",stu[j].name);
  34.                
  35.                 printf("请输入学生的出生日期(yyyy-yy-yy):");
  36.                 scanf("%d-%d-%d",&stu[j].birthdayDate.year,&stu[j].birthdayDate.month,&stu[j].birthdayDate.day);
  37.                
  38.                 printf("\n");
  39.         }
  40.         printf("请输入你需要查询的学生学号:");
  41.         scanf("%d",n);
  42.        
  43.         searth(*headStu, n);
  44.        
  45.         return 0;
  46. }

  47. int searth(struct Student *head, int n)//代入head的实参是结构体链表头指针
  48. {
  49.      while(head)
  50.      {
  51.           if(head->id == n)
  52.           {
  53.               printf("学号:%d\n 姓名:%s\n",head->id,head->name);
  54.               printf("出生日期:%d年%d月%d日",head->birthdayDate.year,head->birthdayDate.month,head->birthdayDate.day);
  55.               return 1;
  56.            }
  57.           head = head -> next;
  58.       }
  59.       printf("没找到。");
  60.       return 0;
  61. }
复制代码

为什么查询时学号输入对了,但还是输出没找到呢?
QQ截图20211225120836.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 07:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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