让人郁闷的函数 --为什么只能做主函数却不 能做子函数呢?

languagec 2003-12-12 03:29:49
#include"stdio.h"
#include"stdlib.h"
struct elem
{
int qu;
char elem;
struct elem *next,*left,*right;
};
struct elem *creattree()
{
struct elem *head,*last,*this,*new;
char c;
int size;
head->next=last;
last->next=0;
size=sizeof(struct elem);
printf("please input char such as A ,then input num such as 8 :\n");
loop:
new=(struct elem *)malloc(size);
scanf("%c %d",&new->elem,&new->qu);
c=getchar();
last->qu=new->qu;
for(this=head;this->next!=0;this=this->next)
{
if(new->qu<=this->next->qu)
{
new->next=this->next;
this->next=new;
break;
}
}
switch(c)
{
case '\n':goto loop;
defult :last=0;break;
}
return head;
}
main()
{
struct elem *head,*this;
this=head->next;
while(this->next!=0)
{
printf("%d %c\t",this->qu,this->elem);
this=this->next;
}
}
...全文
40 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
languagec 2003-12-12
  • 打赏
  • 举报
回复
问题解决 ,但同志们怎么不早说……
expiry 2003-12-12
  • 打赏
  • 举报
回复
同意楼上的
fierygnu 2003-12-12
  • 打赏
  • 举报
回复
struct elem *head,*last,*this,*new;
char c;
int size;
head->next=last; //head和last都没有分配空间
last->next=0;
fansings 2003-12-12
  • 打赏
  • 举报
回复
struct elem
{
int qu;
char elem;
struct elem *next,*left,*right;
};

没遇到过成员跟结构类型名一样的?

ryyy 2003-12-12
  • 打赏
  • 举报
回复
那是因为你这个用作子程序的话,啥都不返回。
加上 head=(struct elem *)malloc(sizeof(char)*sizeof(struct elem));
last=(struct elem *)malloc(sizeof(char)*sizeof(struct elem));
子程序return前free(last);

main结束前free那个head,
languagec 2003-12-12
  • 打赏
  • 举报
回复
调用子程序时运行不正常。不能输出 输入的数据。
把子程序改为主程序,运行正常,能正常输出数据。
我说的就是这个。
languagec 2003-12-12
  • 打赏
  • 举报
回复
复制时掉了一句,加上!
main()
{
struct elem *head,*this;
head=creattree();
this=head->next;
while(this->next!=0)
{
printf("%d %c\t",this->qu,this->elem);
this=this->next;
}
}
ryyy 2003-12-12
  • 打赏
  • 举报
回复
creattree这个函数用都没用啊
ryyy 2003-12-12
  • 打赏
  • 举报
回复
说实话,你在说什么?
languagec 2003-12-12
  • 打赏
  • 举报
回复
以上是给输入数据按大小排序的程序,子函数返回链表头指针,可是为什么运行出错呢?
当输入数据后,提示“非法操作”。
本软件以EXCEL+AutoCAD为基础平台,以加载宏插件的模式进行开发,从而对EXCEL和AutoCAD形成了面向工程人员的有力扩展,从1999年至今历时20年不断开发完善,可适用于市政、公路、铁路、水利等行业的测量员计算放样数据,工程部人员核实红线、横断土方、路面面积等工程量,进行土方过程计量,监理、业主进行数据复合,绘制形象进度图、道路平、纵、横施工图,快速验证各种数据,施工管控等,最主要由于采用EXCEL表格+函数的这种开放式的结构,特别方便使用人员根据自己的需求来灵活自行定制计算和绘图,软件主要功能介绍如下: 一、平面计算 1、可采用交点法和线元法参数来描述和定义道路设计中线对象,从而方便批量的进行中边桩坐标正反算、边桩坐标、桥梁桩基坐标计算,其中坐标反算桩号功能十分独特,一般软件反算仅能计算与路线垂直的桩号和边距,本软件支持与路线呈任意夹角的桩号和边距的反算,特别便于斜交桥桩基验算 2、边线线性加宽及三次抛物线加宽计算,也可以作为批量数据内插的计算 二、纵断面计算 1、竖曲线高程计算、竖曲线参数反算 2、纵断面模块还具有批量线性内插计算的能力,具有较强的通用性,一般用于各种折线式高程(如排水沟、护坡道)、超高、线性加宽等批量计算 三、横断面计算 1、让用户以横断面计算函数+工作表的形式按横断面几何关系来编制横断面计算表,用户相当于拥有了一个强大的横断面编辑器,可适应各种复杂断面形式,同时也便于作为模板保存,再配合本软件提供的CAD自动绘图工具实时验证计算数据,使数据图形化便于快速除错,简直是横断面计算的利器,简单强大的横断面积计算函数(未注册时返回结果为乱码) ,可让您无需在CAD端成图,即可直接在EXCEL中得出横断面积,而且当您计算表中某个数据发生改变时,自动更新相关计算结果,让您工作省时省力 2、强大的横断面绘图伪代码函数,让您将计算出的数据按您的绘图需要自由组合输出横断面绘图脚本,在cad中实现自动绘图;您也可以在CAD中绘图,然后使用相关工具将绘制的图形自动反向转换为绘图脚本生成函数,再放到excel中作为函数使用,强大的自定义功能让您绘制横断图随心所欲 四、自动在AutoCAD中绘图 1、专业路线绘图工具:路中线、路边线、路基等高线、路中线法线、地面线、道路3D模型、Excel转CAD表格、路基三维网格等是您绘制专业施工图的利器 2、CAD基本绘图工具:CAD点、线、圆、文本等基本CAD图元绘制,可以将你Excel内的数据轻松变成CAD图形 3、通过绘图工具让数据图形化,十分便于数据直观快速的验证和获取不易直接算出的工程量,如钻孔桩坐标绘制到路线上,可以很轻松的检核其几何关系是否正确,再比如绘制互通平面图可以很容易看出存在问题的路宽数据,同时也通过CAD面积查询命令准确、快速的查询出互通区等不规则形状的路面面积。 五、电子桩号 可以将测量坐标转换为经纬度坐标(未注册时返回结果为乱码) 并生成KML电子桩号文件,导入手机地图中,这样便可在现场用手机实时确定自己所处的桩号位置,对于不熟悉现场人员在毫无参照的情况下确定工程位置以及进行导航,对于施工期间的非测量人员及无参照无测量工具的情况下,施工现场实时定位桩号位置具有重要作用 六、电子沙盘 将本软件创建的道路3D模型,经过转换后可导入谷歌地球建立十分形象的三维立体电子沙盘,非常便于您进行施工决策、形象展示、技术培训等工作 七、扩展函数 本软件为用户提供60多个可直接在单元格内使用的面向平纵横几何坐标转换数据处理等八大类专业计算函数,再利用EXCEL灵活强大的公式编辑功能,让用户可以高度灵活的自定义计算和绘图流程,真正到您的软件您主,您的计算绘图您说了算! 八、手机端应用 将计算机端平面纵断参数填入手机坐标正反算表、纵断高程计算表模板中,然后将该表导入手机,用wps office等支持电子表格的软件打开就可以便捷的在手机端实时进行任意桩号坐标正反算、高程计算,您需要的就是输入桩号,然后得到平纵横计算结果,由于本质上采用的还是电子表格编制,你也可以在此基础上自定义和扩展编辑您自己的计算,十分方便!
目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 第2章 里氏替换原则 2.1 爱恨纠葛的父子关系 2.2 纠纷不断,规则压制 2.3 最佳实践 第3章 依赖倒置原则 3.1 依赖倒置原则的定义 3.2 言而无信,你太需要契约 3.3 依赖的三种写法 3.4 最佳实践 第4章 接口隔离原则 4.1 接口隔离原则的定义 4.2 美女何其多,观点各不同 4.3 保证接口的纯洁性 4.4 最佳实践 第5章 迪米特法则 5.1 迪米特法则的定义 5.2 我的知识你知道得越少越好 5.3 最佳实践 第6章 开闭原则 6.1 开闭原则的定义 6.2 开闭原则的庐山真面目 6.3 为什么要采用开闭原则 6.4 如何使用开闭原则 6.5 最佳实践 第二部分 我惹了谁——真刀实枪篇 第7章 单例模式 7.1 我是皇帝我独苗 7.2 单例模式的定义 7.3 单例模式的应用 7.4 单例模式的扩展 7.5 最佳实践 第8章 工厂方法模式 8.1 女娲造人的故事 8.2 工厂方法模式的定义 8.3 工厂方法模式的应用 8.3.1 工厂方法模式的优点 8.3.2 工厂方法模式的使用场景 8.4 工厂方法模式的扩展 8.5 最佳实践 第9章 抽象工厂模式 9.1 女娲的失误 9.2 抽象工厂模式的定义 9.3 抽象工厂模式的应用 9.3.1 抽象工厂模式的优点 9.3.2 抽象工厂模式的缺点 9.3.3 抽象工厂模式的使用场景 9.3.4 抽象工厂模式的注意事项 9.4 最佳实践 第10章 模板方法模式 10.1 辉煌工程—制造悍马 10.2 模板方法模式的定义 10.3 模板方法模式的应用 10.4 模板方法模式的扩展 10.5 最佳实践 第11章 建造者模式 11.1 变化是永恒的 11.2 建造者模式的定义 11.3 建造者模式的应用 11.4 建造者模式的扩展 11.5 最佳实践 第12章 代理模式 12.1 我是游戏至尊 12.2 代理模式的定义 12.3 代理模式的应用 12.3.1 代理模式的优点 12.3.2 代理模式的应用 12.4 代理模式的扩展 12.4.1 普通代理 12.4.2 强制代理 12.4.3 代理是有个性的 12.4.4 虚拟代理 12.4.5 动态代理 12.5 最佳实践 第13章 原型模式 13.1 个性化电子账单 13.2 原型模式的定义 13.3 原型模式的应用 13.3.1 原型模式的优点 13.3.2 原型模式的使用场景 13.4 原型模式的注意事项 13.4.1 构造函数不会被执行 13.4.2 浅拷贝和深拷贝 13.4.3 clone与final两个冤家 13.5 最佳实践 第14章 中介者模式 14.1 进销存管理是这个样子的吗? 14.2 中介者模式的定义 14.3 中介者模式的应用 14.4 中介者模式的实际应用 14.5 最佳实践 第15章 命令模式 15.1 项目经理也难当 15.2 命令模式的定义 15.3 命令模式的应用 15.3.1 命令模式的优点 15.3.2 命令模式的缺点 15.3.3 命令模式的使用场景 15.4 命令模式的扩展 15.4.1 未讲完的故事 15.4.2 反悔问题 15.5 最佳实践 第16章 责任链模式 16.1 古代妇女的枷锁—“三从四德” 16.2 责任链模式的定义 16.3 责任链模式的应用 16.3.1 责任链模式的优点 16.3.2 责任链模式的缺点 16.3.3 责任链模式的注意事项 16.4 最佳实践 第17章 装饰模式 17.1 罪恶的成绩单 17.2 装饰模式的定义 17.3 装饰模式应用 17.3.1 装饰模式的优点 17.3.2 装饰模式的缺点 17.3.3 装饰模式的应用 17.4 最佳实践 第18章 策略模式 18.1 刘备江东娶妻,赵云他容易吗 18.2 策略模式的定义 18.3 策略模式的应用 18.3.1 策略模式的优点 18.3.2 策略模式的缺点 18.3.3 策略模式的应用 18.3.4 策略模式的注意事项 18.4 策略模式的扩展 18.5 最佳实践 第19章 适配器模式 19.1 业务发展—上帝才能控制 19.2 适配器模式的定义 19.3 适配器模式的应用 19.3.1 适配器模式的优点 19.3.2 适配器模式的应用 19.3.3 适配器模式的注意事项 19.4 适配器模式的扩展 19.5 最佳实践 第20章 迭代器模式 20.1 整理项目信息—苦差事 20.2 迭代器模式的定义 20.3 迭代器模式的应用 20.4 最佳实践 第21章 组合模式 21.1 公司的人事架构是这样的吗 21.2 组合模式的定义 21.3 组合模式的应用 21.3.1 组合模式的优点 21.3.2 组合模式的缺点 21.3.3 组合模式的应用 21.3.4 组合模式的注意事项 21.4 组合模式的扩展 21.4.1 真实的组合模式 21.4.2 透明的组合模式 21.4.3 组合模式的遍历 21.5 最佳实践 第22章 观察者模式 22.1 韩非子身边的卧底是谁派来的 22.2 观察者模式的定义 22.3 观察者模式的应用 22.3.1 观察者模式的优点 22.3.2 观察者模式的缺点 22.3.3 观察者模式的应用 22.3.4 观察者模式的注意事项 22.4 观察者模式的扩展 22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面模式的缺点 23.3.3 门面模式的应用 23.4 门面模式的注意事项 23.4.1 一个子系统可以有多个门面 23.4.2 门面不参与子系统内的业务逻辑 23.5 最佳实践 第24章 备忘录模式 24.1 如此追女孩子,你还不乐 24.2 备忘录模式的定义 24.3 备忘录模式的应用 24.3.1 备忘录模式的应用 24.3.2 备忘录模式的注意事项 24.4 备忘录模式的扩展 24.4.1 clone方式的备忘录 24.4.2 多状态的备忘录模式 24.4.3 多备份的备忘录 24.4.4 封装得更好一点 24.5 最佳实践 第25章 访问者模式 25.1 员工的隐私何在? 25.2 访问者模式的定义 25.3 访问者模式的应用 25.3.1 访问者模式的优点 25.3.2 访问者模式的缺点 25.3.3 访问者模式的应用 25.4 访问者模式的扩展 25.4.1 统计功能 25.4.2 多个访问者 25.4.3 双分派 25.5 最佳实践 第26章 状态模式 26.1 城市的纵向发展功臣—电梯 26.2 状态模式的定义 26.3 状态模式的应用 26.3.1 状态模式的优点 26.3.2 状态模式的缺点 26.3.3 状态模式的应用 26.3.4 状态模式的注意事项 26.4 最佳实践 第27章 解释器模式 27.1 四则运算你会吗 27.2 解释器模式的定义 27.3 解释器模式的应用 27.3.1 解释器模式的优点 27.3.2 解释器模式的缺点 27.3.3 解释器模式使用的场景 27.3.4 解释器模式的注意事项 27.4 最佳实践 第28章 享元模式 28.1 内存溢出,司空见惯 28.2 享元模式的定义 28.3 享元模式的应用 28.3.1 享元模式优点和缺点 28.3.2 享元模式的应用 28.4 享元模式的扩展 28.4.1 线程安全的问题 28.4.2 性能平衡 28.5 最佳实践 第29章 桥梁模式 29.1 我有一个梦想…… 29.2 桥梁模式的定义 29.3 桥梁模式的应用 29.3.1 桥梁模式的优点 29.3.2 桥梁模式的应用 29.3.3 桥梁模式的注意事项 29.4 最佳实践 第三部分 谁的地盘谁主—模式PK篇 第30章 创建类模式大PK 30.1 工厂方法模式VS建造者模式 30.1.1 按工厂方法建造超人 30.1.2 按建造者模式建造超人 30.1.3 最佳实践 30.2 抽象工厂模式VS建造者模式 30.2.1 按抽象工厂模式生产车辆 30.2.2 按建造者模式生产车辆 30.2.3 最佳实践 第31章 结构类模式大PK 31.1 代理模式VS装饰模式 31.1.1 代理模式 31.1.2 装饰模式 31.1.3 最佳实践 31.2 装饰模式VS适配器模式 31.2.1 按装饰模式描述丑小鸭 31.2.2 按适配器模式实现丑小鸭 31.2.3 最佳实践 第32章 行为类模式大PK 32.1 命令模式VS策略模式 32.1.1 策略模式实现压缩算法 32.1.2 命令模式实现压缩算法 32.1.3 小结 32.2 策略模式VS状态模式 32.2.1 策略模式实现人生 32.2.2 状态模式实现人生 32.2.3 小结 32.3 观察者模式VS责任链模式 32.3.1 责任链模式实现DNS解析过程 32.3.2 触发链模式实现DNS解析过程 32.3.3 小结 第33章 跨战区PK 33.1 策略模式VS桥梁模式 33.1.1 策略模式实现邮件发送 33.1.2 桥梁模式实现邮件发送 33.1.3 最佳实践 33.2 门面模式VS中介者模式 33.2.1 中介者模式实现工资计算 33.2.2 门面模式实现工资计算 33.2.3 最佳实践 33.3 包装模式群PK 33.3.1 代理模式 33.3.2 装饰模式 33.3.3 适配器模式 33.3.4 桥梁模式 33.3.5 最佳实践 第四部分 完美世界—混编模式 第34章 命令模式+责任链模式 34.1 搬移UNIX的命令 34.2 混编小结 第35章 工厂方法模式+策略模式 35.1 迷你版的交易系统 35.2 混编小结 第36章 观察者模式+中介者模式 36.1 事件触发器的开发 36.2 混编小结 第37章 规格模式 37.1 规格模式的实现 37.2 最佳实践 第38章 MVC框架 38.1 MVC框架的实现 38.1.1 MVC的系统架构 38.1.2 模型管理器 38.1.3 值栈 38.1.4 视图管理器 38.1.5 工具类 38.2 最佳实践 附录:23个设计模式

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧