鱼C论坛

 找回密码
 立即注册
查看: 1546|回复: 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 编辑
Mem * findInfo(char * member)
        根据函数内容判断,这个函数的定义是完全错误的!
Mem * findInfo(Mem * member  ,  char * ID)
         这样定义才是对的,第一个输入参数 member 的类型应该是指向 Mem 结构的指针,其实就是指向链表首节点的指针,第二个输入参数 ID 应该是字符串类型,其实,就是需要寻找的字符串。只有这样,变量 ID 才会有着落。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-11 00:46:02 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-11-11 01:05 编辑
Mem * findInfo(char * member)
        根据函数内容判断,这个函数的定义是完全错误的!
Mem * findInfo(Mem * member  ,  char * ID)
         这样定义才是对的,第一个输入参数 member 的类型应该是指向 Mem 结构的指针,其实就是指向链表首节点的指针,第二个输入参数 ID 应该是字符串类型,其实,就是需要寻找的字符串。只有这样,变量 ID 才会有着落。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

出现findInfo调用中的参数太少,请问怎么解决?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

      你是根据什么判断 findInfo() 调用的参数太少?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

编译器显示错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


       把你的代码贴出来,注意,必须贴进代码框。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

Mem* findInfo(char *ID);//查找成员信息
//根据学生信息查找学生
Mem* findInfo(Mem* member, char* ID)
{
        Mem *mem = member->next;
        while (mem != NULL)
        {
                if (strcmp(mem->ID, ID) == 0)
                        return mem;
                mem = mem->next;
        }
        return NULL;
}
case 4:
                        printf("请输入学号:");
                        scanf("%s", tempID);
                        Mem *mem = findInfo(tempID);
                        if (mem != NULL)
                        {
                                printf("学号:%s\n姓名:%s\n数字:%d\n", mem->ID, mem->name, mem->num);
                        }
                        else
                        {
                                printf("学号不存在!按任意键返回");
                                getchar(); getchar();
                        }
                        break;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 13:19:19 | 显示全部楼层
                        Mem *mem = findInfo(tempID);
                        Mem *mem = findInfo(<首节点指针> , tempID);
      不好意思,你贴代码这么节省,我就只好这么来帮你了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢谢谢,可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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