首页 > 编程语言 >修改宠物俱乐部程序,把所有同名的宠物都存储在同一个节点。当用户选择查找宠物时,程序应咨询用户该宠物的名字,然后列出该名字的所有宠物(及其种类)

修改宠物俱乐部程序,把所有同名的宠物都存储在同一个节点。当用户选择查找宠物时,程序应咨询用户该宠物的名字,然后列出该名字的所有宠物(及其种类)

时间:2024-08-11 23:27:44浏览次数:8  
标签:name club 宠物 程序 用户 current pet Pet

/修改宠物俱乐部程序,把所有同名的宠物都存储在同一个节点。当用户选择查找宠物时,程序应咨询用户该宠物的名字,然后列出该名字的所有宠物(及其种类)/

include <stdio.h>

include <stdlib.h>

include <string.h>

typedef struct Pet
{
char name[50];
char species[50];
struct Pet *next;
} Pet;

typedef struct PetClub
{
Pet *head;
} PetClub;

PetClub *create_pet_club()
{
PetClub *club = (PetClub *)malloc(sizeof(PetClub));
club->head = NULL;
return club;
}

void add_pet(PetClub *club, const char *name, const char *species)
{
Pet *new_pet = (Pet *)malloc(sizeof(Pet));
strcpy(new_pet->name, name);
strcpy(new_pet->species, species);
new_pet->next = NULL;

if (club->head == NULL)
{
    club->head = new_pet;
}
else
{
    Pet *current = club->head;
    Pet *prev = NULL;

    while (current != NULL && strcmp(current->name, name) < 0)
    {
        prev = current;
        current = current->next;
    }

    if (prev != NULL && strcmp(prev->name, name) == 0)
    {
        while (prev->next != NULL)
        {
            prev = prev->next;
        }
        prev->next = new_pet;
    }
    else if (prev == NULL)
    {
        new_pet->next = club->head;
        club->head = new_pet;
    }
    else
    {
        new_pet->next = current;
        prev->next = new_pet;
    }
}

}

void find_pets(PetClub *club, const char *name)
{
Pet *current = club->head;
int found = 0;

while (current != NULL)
{
    if (strcmp(current->name, name) == 0)
    {
        printf("宠物名: %s, 种类: %s\n", current->name, current->species);
        found = 1;
    }
    current = current->next;
}

if (!found)
{
    printf("未找到该名字的宠物。\n");
}

}

void free_pet_club(PetClub *club)
{
Pet *current = club->head;
while (current != NULL)
{
Pet *temp = current;
current = current->next;
free(temp);
}
free(club);
}
int main(void)
{
PetClub *club = create_pet_club();
add_pet(club, "Buddy", "Dog");
add_pet(club, "Buddy", "Cat");
add_pet(club, "Max", "Dog");
char pet_name[50];
printf("请输入要查找的宠物名字: ");
scanf("%s", pet_name);
find_pets(club, pet_name);
free_pet_club(club);
return 0;
}

标签:name,club,宠物,程序,用户,current,pet,Pet
From: https://www.cnblogs.com/yesiming/p/18354102

相关文章

  • MySQL授权用户对存储过程查询和执行权限【转】
    1、授权MySQL存储过程执行权限在项目中往往会用到存储过程来统计一些比较复杂的报表,如果数据库是mysql,则需要在执行存储过程前需要为用户添加权限,才可以,否则会提示:mysqlUserdoesnothaveaccesstometadatarequiredtodeterminestoredprocedureparametertypes错误。......
  • 打开Office(word、excel、ppt)显示操作系统当前的配置不能运行此应用程序最全解决方案
    我以前用过分区助手把office从c盘挪到d盘了,从那以后office就用不了了,然后我就删了(貌似没删干净)。最近由于有使用word的需求,所以我从学校官网找到正版软件的安装包,按照步骤重新卸载电脑中office残留并安装好之后,打开word会提示“操作系统当前的配置不能运行此应用程序”,ppt......
  • 第一个Spark程序
    一、创建工程1、创建方式一创建Maven工程添加Scala框架创建Scala文件夹,并设置为源代码文件夹创建包和对象2、创建方式二创建scala工程添加maven框架创建scala文件夹,并设置为源代码文件夹创建包和对象二、pom.xml添加依赖<dependencies>......
  • 微信小程序学习记录
    一、为什么要写这篇文章来公司已经1个半月了,虽然应聘的是嵌入式软件工程师,但是由于在实习期,公司也不太清楚具体给我一些什么任务,在完成第一项“bootloader错误注入”测试的任务之后,又给我增派了基于已有蓝牙小程序来进行修改的任务。没办法,学吧!!反正自己也有想要学习小程序开发的......
  • springboot+vue体检套餐定制系统的设计与实现【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着人们健康意识的不断提升,定期体检已成为现代人维护健康、预防疾病的重要手段。然而,市场上现有的体检套餐往往存在一刀切的问题,难以满足不同年龄、性别、职业及健康状况人群的个性化需求。此外,体检预约流程繁琐、体检结果解读困难等......
  • mysql 给了用户所有权限ALL PRIVILEGES,但是该用户没有grant权限
    在MySQL中,给用户ALLPRIVILEGES权限但没有grant权限的情况可能是因为MySQL版本的更新导致了语法的变化。在MySQL8.0及更高版本中,GRANTALLPRIVILEGES的用法已经不再支持,需要使用GRANTALLPRIVILEGESON*.*TO'username'@'host'WITHGRANTOPTION;的格式来授予用户全局权限和......
  • 基于django+vue线上音乐俱乐部系统设计与实现【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容进度安排:时间主要工作预期阶段成果2024年1月搜集资料、撰写开题报告完成开题报告2024年2月系统设计完成系统设计2024年3月......
  • mysql数据库:DCL:管理用户,授权
    mysql数据库:DCL:管理用户,授权管理用户添加用户关闭密码复杂验证setglobalvalidate_password_policy=0;setglobalvalidate_password_length=1;语法CREATEUSER'用户名'@'主机名'IDENTIFIEDBY'密码';例子CREATEUSER'zhangsan'@'localhost&#......
  • 基于flask+vue框架的选课系统设计与实现[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大,学生人数激增,传统的手工选课方式已难以满足高校对选课管理的效率与准确性要求。学生选课过程中常出现信息不对......
  • 基于flask+vue框架的的校园二手交易网站[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及和校园生活的日益丰富,学生群体对于物品交换与二手交易的需求日益增长。传统的线下二手市场存在信息不对称、交易效率低......