鱼C论坛

 找回密码
 立即注册
查看: 1932|回复: 8

[已解决]编写管理系统时遇到的问题

[复制链接]
发表于 2019-11-11 00:32:50 | 显示全部楼层 |阅读模式

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

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

x
//根据学生信息查找学生
Mem *findInfo(char *member)
{
        Mem *mem = member->next;//表达式必须包含指向结构或联合的指针类型
        while (mem != NULL)
        {
                if (strcmp(mem->ID, ID) == 0)//ID未定义?
                        return mem;
                mem = mem->next;
        }
        return NULL;
最佳答案
2019-11-11 00:46:02
本帖最后由 jackz007 于 2019-11-11 01:05 编辑
  1. Mem * findInfo(char * member)
复制代码

        根据函数内容判断,这个函数的定义是完全错误的!
  1. Mem * findInfo(Mem * member  ,  char * ID)
复制代码

         这样定义才是对的,第一个输入参数 member 的类型应该是指向 Mem 结构的指针,其实就是指向链表首节点的指针,第二个输入参数 ID 应该是字符串类型,其实,就是需要寻找的字符串。只有这样,变量 ID 才会有着落。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-11-11 00:46:02 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-11-11 01:05 编辑
  1. Mem * findInfo(char * member)
复制代码

        根据函数内容判断,这个函数的定义是完全错误的!
  1. Mem * findInfo(Mem * member  ,  char * ID)
复制代码

         这样定义才是对的,第一个输入参数 member 的类型应该是指向 Mem 结构的指针,其实就是指向链表首节点的指针,第二个输入参数 ID 应该是字符串类型,其实,就是需要寻找的字符串。只有这样,变量 ID 才会有着落。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 12:43:03 | 显示全部楼层
jackz007 发表于 2019-11-11 00:46
根据函数内容判断,这个函数的定义是完全错误的!

         这样定义才是对的,第一个输入参 ...

出现findInfo调用中的参数太少,请问怎么解决?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 12:52:34 | 显示全部楼层
HJ123 发表于 2019-11-12 12:43
出现findInfo调用中的参数太少,请问怎么解决?

      你是根据什么判断 findInfo() 调用的参数太少?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 13:03:42 | 显示全部楼层
jackz007 发表于 2019-11-12 12:52
你是根据什么判断 findInfo() 调用的参数太少?

编译器显示错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 13:11:32 | 显示全部楼层
HJ123 发表于 2019-11-12 13:03
编译器显示错误


       把你的代码贴出来,注意,必须贴进代码框。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 13:12:59 | 显示全部楼层
本帖最后由 HJ123 于 2019-11-12 13:18 编辑
jackz007 发表于 2019-11-12 13:11
把你的代码贴出来

  1. Mem* findInfo(char *ID);//查找成员信息
复制代码
  1. //根据学生信息查找学生
  2. Mem* findInfo(Mem* member, char* ID)
  3. {
  4.         Mem *mem = member->next;
  5.         while (mem != NULL)
  6.         {
  7.                 if (strcmp(mem->ID, ID) == 0)
  8.                         return mem;
  9.                 mem = mem->next;
  10.         }
  11.         return NULL;
  12. }
复制代码
  1. case 4:
  2.                         printf("请输入学号:");
  3.                         scanf("%s", tempID);
  4.                         Mem *mem = findInfo(tempID);
  5.                         if (mem != NULL)
  6.                         {
  7.                                 printf("学号:%s\n姓名:%s\n数字:%d\n", mem->ID, mem->name, mem->num);
  8.                         }
  9.                         else
  10.                         {
  11.                                 printf("学号不存在!按任意键返回");
  12.                                 getchar(); getchar();
  13.                         }
  14.                         break;
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 13:19:19 | 显示全部楼层
  1.                         Mem *mem = findInfo(tempID);
复制代码
  1.                         Mem *mem = findInfo(<首节点指针> , tempID);
复制代码

      不好意思,你贴代码这么节省,我就只好这么来帮你了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 13:27:48 | 显示全部楼层
jackz007 发表于 2019-11-12 13:19
不好意思,你贴代码这么节省,我就只好这么来帮你了。

谢谢谢谢,可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-14 01:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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