keil中变量运算

2019-03-24 17:39发布

请问下面这个程序哪里有问题吗?总是计算不对x1,y1,的值,但是如果直接给m1,n1,b1,b2赋予常数值,x1,y1计算结果就是对的,这是为什么呢?



double m1,n1,m2,n2,b1,b2,c1,c2,c3,c4,d1,d2;     //计算中的中间变量
        int x1,x2,y1,y2;
    Ta=0;Tb=1;Tc=2;Td=3;
        c1=0.34*(Ta-Tb);        //时间差到距离差 单位为毫米
        c2=0.34*(Ta-Tc);
        c3=0.34*(Tc-Td);
        c4=0.34*(Tb-Td);
        m1=(4*c2)/(c1*3);
        n1=(c1*c2-c2*c2+300*300)/600;      //计算中的中间变量
        b1=m1*m1+1-(4*200*200)/(c1*c1);
        b2=n1*n1+200*200-(c1*c1)/4;
        x1=(int)((sqrt((m1*m1*n1*n1-b1*b2))-m1*n1)/b1);     //第一组想(x,y)
        y1=(int)(m1*x1+n1);
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
lcofjp
1楼-- · 2019-03-25 00:27
 精彩回答 2  元偷偷看……
ywlzh
2楼-- · 2019-03-25 06:22
你这个程序不涉及效率问题的话,你所说的对是对在哪里,你说的错又与对的结果误差差多少?
HITZHANGT
3楼-- · 2019-03-25 07:51
单步调试应该可以看出来的
billliu66
4楼-- · 2019-03-25 13:03
 精彩回答 2  元偷偷看……
billliu66
5楼-- · 2019-03-25 14:21
b1=m1*m1+1-(4*200*200)/(c1*c1);
billliu66
6楼-- · 2019-03-25 17:26
keil会把300,200当成什么?

一周热门 更多>