HJ123 发表于 2019-11-11 00:32:50

编写管理系统时遇到的问题

//根据学生信息查找学生
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;

jackz007 发表于 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 才会有着落。

HJ123 发表于 2019-11-12 12:43:03

jackz007 发表于 2019-11-11 00:46
根据函数内容判断,这个函数的定义是完全错误的!

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

出现findInfo调用中的参数太少,请问怎么解决?

jackz007 发表于 2019-11-12 12:52:34

HJ123 发表于 2019-11-12 12:43
出现findInfo调用中的参数太少,请问怎么解决?

      你是根据什么判断 findInfo() 调用的参数太少?

HJ123 发表于 2019-11-12 13:03:42

jackz007 发表于 2019-11-12 12:52
你是根据什么判断 findInfo() 调用的参数太少?

编译器显示错误

jackz007 发表于 2019-11-12 13:11:32

HJ123 发表于 2019-11-12 13:03
编译器显示错误

       把你的代码贴出来,注意,必须贴进代码框。

HJ123 发表于 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;

jackz007 发表于 2019-11-12 13:19:19

                        Mem *mem = findInfo(tempID);
                        Mem *mem = findInfo(<首节点指针> , tempID);
      不好意思,你贴代码这么节省,我就只好这么来帮你了。

HJ123 发表于 2019-11-12 13:27:48

jackz007 发表于 2019-11-12 13:19
不好意思,你贴代码这么节省,我就只好这么来帮你了。

谢谢谢谢,可以了
页: [1]
查看完整版本: 编写管理系统时遇到的问题