void xiugai(node *h)中为啥有edefintion of "xiugai"的错误

时间: 2024-03-28 15:38:02 浏览: 18
这个错误是因为在程序中出现了"xiugai"的重复定义。可能是在同一个源文件中定义了多个名为"xiugai"的函数,或者在不同的源文件中都包含了"xiugai"函数的定义。 为了避免这个错误,可以采取以下措施: 1. 检查程序中是否有同名的函数或变量。如果有,需要修改名称以避免重复定义。 2. 确保每个函数的定义只出现在一个源文件中。如果需要在多个源文件中使用某个函数,可以将函数的声明放在头文件中,然后在需要使用该函数的源文件中包含头文件即可。 3. 如果使用了多个源文件编译成一个可执行文件,需要在链接时指定正确的编译选项,以确保不会出现重复定义的错误。
相关问题

node *modification(node *h){//修改订单 node *s,*r; if(h==NULL) { h=malloc(sizeof(node)); h->next=NULL; r=h; } else{ r=h; while(r->next!=NULL) r=r->next; } s=malloc(sizeof(node)); printf("名称:"); scanf("%s",s->data.name); printf("增加时间:"); scanf("%lf",&s->data.time); printf("类型:"); scanf("%d",&s->data.type); r->next=s; r=s; r->next=NULL; return h; } void xiugai(node *s){//修改订单 while(s->next!=NULL){ s=s->next; printf("名称:"); printf("%s\n",&s->data.name); printf("增加时间:"); printf("%s\n",&s->data.time); printf("手机尾号:"); printf("%s\n",&s->data.useful); printf("类型:"); printf("%s\n",&s->data.type); } }这段代码插入上一段中是否会存在问题

这段代码存在一些问题。具体问题如下: 1. 函数`modification`的定义中,应该在参数列表中指明参数的类型,例如`node *modification(node *h)`应该改为`node* modification(node* h)`,这样更符合C语言的函数定义规范。 2. 函数`modification`中,如果链表`h`为空,则应该先为其分配一个头结点,然后将新节点插入到头结点之后,代码中已经实现了这个逻辑。 3. 函数`modification`中,将新节点插入到链表的末尾,代码中已经实现了这个逻辑。 4. 函数`xiugai`中,应该将链表头节点的数据忽略掉,否则第一个节点的数据将没有被输出。 5. 函数`xiugai`中,输出节点数据时,应该使用`s->data.name`,`s->data.time`等成员变量,而不是`&s->data.name`,`&s->data.time`等成员变量的地址。 6. 函数`xiugai`中,输出节点数据的格式应该和输入时一致,例如名称应该用`%s`而不是`%lf`。 7. 函数`xiugai`中,输出节点数据时,应该先输出提示信息,再等待用户输入数据,代码中已经实现了这个逻辑。 综上所述,修改后的代码如下: ``` node* modification(node* h) { node *s, *r; if (h == NULL) { h = malloc(sizeof(node)); h->next = NULL; r = h; } else { r = h; while (r->next != NULL) r = r->next; } s = malloc(sizeof(node)); printf("名称:"); scanf("%s", s->data.name); printf("增加时间:"); scanf("%lf", &s->data.time); printf("类型:"); scanf("%d", &s->data.type); r->next = s; r = s; r->next = NULL; return h; } void xiugai(node* s) { printf("修改订单:\n"); while (s->next != NULL) { s = s->next; printf("名称:%s\n", s->data.name); printf("增加时间:%lf\n", s->data.time); printf("类型:%d\n", s->data.type); } } ```

void xiugai(node *s){ int ch; system("cls"); system("color 6B"); printf("\n\n\n\t~~~~~~~修改订单~~~~~~~~~\n\n"); printf("\t输入1修改订单\t输入0返回上一级:"); scanf("%d",&ch); while(1){ switch(ch){ case 1:printf(h);break; case 0:printf("0");break; default:online();//退出 } printf("\t输入1修改订单\t输入0返回上一级:"); scanf("%d",&ch); if(ch==0){ printf("返回上一级\n"); break; } } }node* modification(node *h){//修改订单 node *s,*r; if(h==NULL) { h=malloc(sizeof(node)); h->next=NULL; r=h; } else{ r=h; while(r->next!=NULL) r=r->next; } s=malloc(sizeof(node)); printf("名称:"); scanf("%s",s->data.name); printf("增加时间:"); scanf("%lf",&s->data.time); printf("类型:"); scanf("%d",&s->data.type); r->next=s; r=s; r->next=NULL; return h; } void xiugai(node *s){ printf("修改订单:\n");//修改订单 while(s->next!=NULL){ s=s->next; printf("名称:"); printf("%s\n",&s->data.name); printf("增加时间:"); printf("%s\n",&s->data.time); printf("手机尾号:"); printf("%s\n",&s->data.useful); printf("类型:"); printf("%s\n",&s->data.type); } }

这段代码中存在以下问题: 1. `void xiugai(node *s)` 函数被定义了两次,这会导致编译错误。需要将其中一个函数的名称修改为其他名称。 2. `case 1:printf(h);` 应该改为 `case 1:xiugai(h);`,因为需要调用 `xiugai` 函数来修改订单。 3. `scanf("%s",&s->data.time);` 应该改为 `scanf("%lf",&s->data.time);`,因为订单时间是一个实数类型。 4. `printf("%s\n",&s->data.time);` 应该改为 `printf("%lf\n",s->data.time);`,因为订单时间是一个实数类型,需要使用 `%lf` 格式化符号输出。 5. `printf("%s\n",&s->data.useful);` 应该改为 `printf("%d\n", s->data.useful);`,因为手机尾号是一个整数类型。 下面是修改后的代码: ```c void modify(node *s) { int ch; system("cls"); system("color 6B"); printf("\n\n\n\t~~~~~~~修改订单~~~~~~~~~\n\n"); printf("\t输入1修改订单\t输入0返回上一级:"); scanf("%d", &ch); while (1) { switch (ch) { case 1: xiugai(s); break; case 0: printf("返回上一级\n"); break; default: online(); //退出 break; } printf("\t输入1修改订单\t输入0返回上一级:"); scanf("%d", &ch); if (ch == 0) { printf("返回上一级\n"); break; } } } node* xiugai(node *h) { node *s, *r; if (h == NULL) { h = malloc(sizeof(node)); h->next = NULL; r = h; } else { r = h; while (r->next != NULL) r = r->next; } s = malloc(sizeof(node)); printf("名称:"); scanf("%s", s->data.name); printf("增加时间:"); scanf("%lf", &s->data.time); printf("手机尾号:"); scanf("%d", &s->data.useful); printf("类型:"); scanf("%d", &s->data.type); r->next = s; r = s; r->next = NULL; return h; } void print(node *s) { printf("修改订单:\n"); while (s->next != NULL) { s = s->next; printf("名称:%s\n", s->data.name); printf("增加时间:%lf\n", s->data.time); printf("手机尾号:%d\n", s->data.useful); printf("类型:%d\n", s->data.type); } } ```

相关推荐

最新推荐

recommend-type

简易图片检索软件(图像动态显示软件)

首先设置待检索文件夹路径,设置完成解锁开始按钮,点击即可自动查阅文件夹下的图像。可设置每张图像的显示高度、显示停留时间及整体循环次数。 exe应用界面文件在路径disk/load_picture/load_picture.exe 点击exe应用及即可。
recommend-type

树状数组详解资源.zip

树状数组
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性

![MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性](https://picx.zhimg.com/80/v2-8132d9acfebe1c248865e24dc5445720_1440w.webp?source=1def8aca) # 1. MATLAB结构体基础** MATLAB结构体是一种数据结构,用于存储和组织相关数据。它由一系列域组成,每个域都有一个名称和一个值。结构体提供了对数据的灵活访问和管理,使其成为组织和处理复杂数据集的理想选择。 MATLAB中创建结构体非常简单,使用struct函数即可。例如: ```matlab myStruct
recommend-type

详细描述一下STM32F103C8T6怎么与DHT11连接

STM32F103C8T6可以通过单总线协议与DHT11连接。连接步骤如下: 1. 将DHT11的VCC引脚连接到STM32F103C8T6的5V电源引脚; 2. 将DHT11的GND引脚连接到STM32F103C8T6的GND引脚; 3. 将DHT11的DATA引脚连接到STM32F103C8T6的GPIO引脚,可以选择任一GPIO引脚,需要在程序中配置; 4. 在程序中初始化GPIO引脚,将其设为输出模式,并输出高电平,持续至少18ms,以激活DHT11; 5. 将GPIO引脚设为输入模式,等待DHT11响应,DHT11会先输出一个80us的低电平,然后输出一个80us的高电平,
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

MATLAB结构体与数据库交互:无缝连接数据存储与处理,实现数据管理自动化

![MATLAB结构体与数据库交互:无缝连接数据存储与处理,实现数据管理自动化](https://ww2.mathworks.cn/products/database/_jcr_content/mainParsys/band_1749659463_copy/mainParsys/columns_copy/6d5289a2-72ce-42a8-a475-d130cbebee2e/image_copy_2009912310.adapt.full.medium.jpg/1709291769739.jpg) # 1. MATLAB结构体与数据库交互概述** MATLAB结构体与数据库交互是一种强大的
recommend-type

Link your Unity

project to C# script in Visual Studio. Can you provide me with some guidance on this? Yes, I can definitely help you with that! To link your Unity project to C# script in Visual Studio, you first need to make sure that you have both Unity and Visual Studio installed on your computer. Then, you can