鱼C论坛

 找回密码
 立即注册
查看: 2657|回复: 9

请帮忙改下程序(条件运算,三角函数)

[复制链接]
发表于 2015-6-20 16:55:19 | 显示全部楼层 |阅读模式
88鱼币
这个程序前面输入相同,“R角”处有三种输入,分别为大写字母“C”(意为长度),大写字母“J”(意为角度),双精度浮点数(指针为g)。

在输入大写字母“J”,双精度浮点数时结果正确,但输入大写字母“C”时结果错误,不知道是不是给“s”赋值错误(s是角度度数),
(我这里倒角长度就是三角形一条直角边,另一条直角边用(“大外圆”减去“倒角下方外圆”)结果再除以2)
请帮忙改下使它达到如图所示结果(这个图是输入“J”的,我希望输入“C”运算结果一样)

下面是三组测试数据
64.5        42        62        76.5        60.5        84.5        2
64.5        42        62        76.5        60.5        84.5        J        15        81.8        2.5
64.5        42        62        76.5        60.5        84.5        C        5        81.8        2.5



三种条件.jpg
三种条件.rar (936 Bytes, 下载次数: 9)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-20 20:10:52 | 显示全部楼层
本帖最后由 晚起鸟儿 于 2015-6-20 20:12 编辑

可能大伙对我这个顽固的家伙纠结这个写得乱,差还老弄上来的程序烦不胜烦,但我能力只有这点呀,我希望通过思考和学习使它更好呀,等这个程序基本能应对凯达数控编程的运算后,我希望给它加个按钮,窗口,漂亮的界面,更规范的编写,甚至对著名的FANUC系统自动编程(无非是一些较难的节点进行数学计算,并对实践中的差异进行校正)请高手们不吝指导哦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-20 23:21:25 | 显示全部楼层
仰望天上的光 发表于 2015-6-20 22:00
代码修改的4个地方我用注释标明了。
另外,浮点数运算有舍入误差,所以你对比下结果,有一些偏差。

这个是你是完全正确的,我把小数点后面数省略了(我想技术部在用CAD画图时也是把精度要求不太高的位置小数点后面的数省略,这样看起来也清楚些)正确数值是输入(84.5-81.8)/2/tan15≈5.038
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-20 23:29:43 | 显示全部楼层
本帖最后由 晚起鸟儿 于 2015-6-20 23:55 编辑
仰望天上的光 发表于 2015-6-20 22:02
呵呵。。。编程就是为了解决现实生活中的问题。你在编程能力不是很强的情况下,就有这种想法。。。很好

...


   谢谢光版主帮助,下面顺序改成后面的就报错,可以帮忙解释和修改下么?另外 func2和func3可以直接继承func1赋值和前面输入的数值么,这样程序比较短和清晰         



               if ( str[0] == 'J' ) {
                func2();
        }
        
              else if ( str[0] == 'C' ) {
                func3();
        }
        else {
              (sscanf(str,"%lf",&g));
                func1();
                }










     if {
                (sscanf(str,"%lf",&g));
                func1();
        }
        
        else if ( str[0] == 'J' ) {
                func2();
        }
        
        else ( str[0] == 'C' ) {
                func3();
        }
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-21 09:44:09 | 显示全部楼层

这也太复杂了吧,完全不是我这种菜鸟看得懂的,而且有很多乱码。。。继承还是不要用了,顺序也改好了

        if (sscanf(str,"%lf",&g)){
                func1();
                }
        
       else if ( str[0] == 'J' ) {
                func2();
        }
        
        else if ( str[0] == 'C' ) {
                func3();
        }
       
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-10 03:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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