鱼C论坛

 找回密码
 立即注册
查看: 1120|回复: 4

[已解决]链表哪里出错了,该怎么写?

[复制链接]
发表于 2020-2-25 15:13:54 | 显示全部楼层 |阅读模式
50鱼币
  1. #include <iostream>
  2. using namespace std;

  3. struct student
  4. {
  5.     char name[20];
  6.     int age;
  7.     student* next;
  8. };

  9. int main()
  10. {
  11.     int i = 0;
  12.     int bfound = 0;
  13.     student c = {"Kaka",23,NULL};
  14.     student b = {"Deco",27,&c};
  15.     student a = {"Terry",30,&b};
  16.     student* head = &a;
  17.     student* pointer = head;
  18.     char name[128] = {0};

  19.     cout<<"请输入学生姓名"<<endl;
  20.     cin>>name;
  21.     while(pointer != NULL)
  22.     {
  23.         if(strcmp(pointer->name,name) == 0)
  24.         {
  25.             bfound = 1;
  26.             break;
  27.         }
  28.         pointer = pointer->next;
  29.     }
  30.     if(bfound)
  31.     {
  32.         cout<<"name"<<pointer->name<<"age"<<pointer->age<<endl;
  33.     }
  34.     else
  35.     {
  36.         cout<<"no found"<<endl;
  37.     }

  38.     return 0;
  39. }
复制代码
最佳答案
2020-2-25 15:13:55
〃忝書γě渎ぐ 发表于 2020-2-25 16:37
请输入学生姓名
小明
no found

你的链表里面本身就没有小明啊。
你的链表只有三个结点,姓名分别为Terry, Deco, Kaka。你输这三个中的某一个试试。

最佳答案

查看完整内容

你的链表里面本身就没有小明啊。 你的链表只有三个结点,姓名分别为Terry, Deco, Kaka。你输这三个中的某一个试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-25 15:13:55 | 显示全部楼层    本楼为最佳答案   
〃忝書γě渎ぐ 发表于 2020-2-25 16:37
请输入学生姓名
小明
no found

你的链表里面本身就没有小明啊。
你的链表只有三个结点,姓名分别为Terry, Deco, Kaka。你输这三个中的某一个试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-25 16:34:03 | 显示全部楼层
你这个跟链表怎么实现没啥关系。

你都不看报错信息的吗?
error: 'strcmp' was not declared in this scope
         if(strcmp(pointer->name,name) == 0)
note: 'strcmp' is defined in header '<cstring>'; did you forget to '#include <cstring>'?
main.cpp:2:1:

这些都是在提醒你要用strcmp函数需要增加头文件ctring。

  1. #include <iostream>
  2. #include<cstring>   // strcmp()函数在这个头文件
  3. using namespace std;

  4. struct student
  5. {
  6.     char name[20];
  7.     int age;
  8.     student* next;
  9. };

  10. int main()
  11. {
  12.     int i = 0;
  13.     int bfound = 0;
  14.     student c = {"Kaka",23,NULL};
  15.     student b = {"Deco",27,&c};
  16.     student a = {"Terry",30,&b};
  17.     student* head = &a;
  18.     student* pointer = head;
  19.     char name[128] = {0};

  20.     cout<<"请输入学生姓名"<<endl;
  21.     cin>>name;
  22.     while(pointer != NULL)
  23.     {
  24.         if(strcmp(pointer->name,name) == 0)
  25.         {
  26.             bfound = 1;
  27.             break;
  28.         }
  29.         pointer = pointer->next;
  30.     }
  31.     if(bfound)
  32.     {
  33.         cout<<"name: "<<pointer->name<<", age: "<<pointer->age<<endl; //这里帮你改了一下打印格式
  34.     }
  35.     else
  36.     {
  37.         cout<<"no found"<<endl;
  38.     }

  39.     return 0;
  40. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-25 16:37:32 | 显示全部楼层
major_lyu 发表于 2020-2-25 16:34
你这个跟链表怎么实现没啥关系。

你都不看报错信息的吗?

请输入学生姓名
小明
no found

每次都是no found,那有没有什么逻辑上的错误?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-25 16:45:16 | 显示全部楼层
major_lyu 发表于 2020-2-25 16:34
你这个跟链表怎么实现没啥关系。

你都不看报错信息的吗?

大神,你C++怎么学的,能不能说说?给点建议。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 22:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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