搜索
查看: 1642|回复: 8
打印 上一主题 下一主题

求助!请帮忙看下这段程序

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-22 21:31:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
计算力和角度的,首先,设定一个几何角度(如a1),将其带入分力公式,求出该分力的值(如pa);然后,用计算出的分力,计算出该几何角(aa);接着,用计算出的几何角与设定的几何角进行比较,并重新设定一个几何角,然后重复上述的计算。通过不断的迭代反复计算,使设定的几何角与计算出的几何角之差,达到一个精度值为止。这样可计算出该几何角和分力值。计算机程序框图间附图。编的程序a1,a2,a3,a4,a5初始输入都为0.03,怎么显示的a2,a3,a4,a5还是0.03,不应该是ac,ad,ai,ag的值吗?程序方法正确吗?if循环语句用的对吗?求大侠们赐教!!
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main()
{double a1,pa,pb,m1,aa;
scanf("%lf",&a1);
while(a1>0)
{pa=3427347*sin(0.68007+a1);
pb=3427347*sin(0.68007-a1);
m1=0.00008439*pow(pa,0.5);
aa=asin((3358800*2.18+(pa+pb)*m1)/(pa+pb)*0.01724);
if(abs(a1-aa)<0.001)
break;
else
{a1=a1-(a1-aa)/2;}
}
printf("%lf\n,%lf\n,%lf\n,%lf\n",aa,pa,pb,m1);
double a2,a3,a4,a5,pc,pd,pe,pf,pde,pg,ph,pi,pj,pk,pl,phi,pkj,v3,m2,m3,m4,m5,ac,ad,ag,ai;
scanf("%lf %lf %lf %lf",&a2,&a3,&a4,&a5);
  while(a2>0)
   {pc=pa*sin(1.117+a3-aa)/sin(0.367+a2+1.117+a3);
    pd=pa*sin(0.367+a2+aa)/sin(0.367+a2+1.117+a3);
    m2=0.0001099*pow(pc,0.5);
    m4=0.0001106*pow(pd,0.5);
    ac=asin(pa/pc*sin(aa)+pa/pc*m1*0.01724+pd/pc*sin(a3)+pd/pc*m4*0.01724+m2*0.01724);
     if(abs(a2-ac)<0.001)
    {pe=pb*sin(0.367-a2-aa)/sin(1.117-a3+0.367-a2);
    pf=pb*sin(1.117-a3+aa)/sin(1.117-a3+0.367-a2);
    pde=sqrt(pow(pd,2)+pow(pe,2)-2*pd*pe*cos(3.14-2*0.401));
    v3=0.401+a3-asin(pe*0.014/pde);
    pi=pde*sin(0.785-a4-v3)/0.0274;
    pj=pde*sin(0.785+a4+v3)/0.0274;
    m5=0.0001436*pow(pi,0.5);
    ad=asin(0.009756*(pi+pj)/(pd+pe)*(102.5*sin(a4)+m5)+0.009756*m4);
     if(abs(a3-ad)<0.001)
    {ai=asin(2*(0.111+m5)/300);
     if(abs(a4-ai)<0.001)
     {pg=pc*sin(1.065-a4+a2)/sin(0.227+a5+1.065-a4);
     ph=pc*sin(0.227+a5-a2)/sin(0.227+a5+1.065-a4);
     m3=0.0001422*pow(pg,0.5);
     ag=asin(2*(0.111+m3)/300);
      if(abs(a5-ag)<0.001)
     break;
     else
     {a5=a5-(a5-ag)/2;}
     }  
      else
     {a4=a4-(a4-ai)/2;}
     }
      else
     {a3=a3-(a3-ad)/2;}
     }
      else
     {a2=a2-(a2-ac)/2;}
        }
  pk=pf*sin(0.227-a5+a2)/sin(1.065+a4+0.227-a5);
  pl=pf*sin(1.065+a4+a2)/sin(1.065+a4+0.227-a5);
  phi=sqrt(pow(pi,2)+pow(ph,2)-2*pi*ph*cos(3.14-0.785));
  pkj=sqrt(pow(pk,2)+pow(pj,2)-2*pk*pj*cos(3.14-0.785));
  printf("%lf\n,%lf\n,%lf\n,%lf\n",m2,m3,m4,m5);
  printf("%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n",pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,phi,pkj);
  printf("%lf\n,%lf\n,%lf\n,%lf\n",a2,a3,a4,a5);
  printf("%lf\n,%lf\n,%lf\n,%lf\n",ac,ad,ai,ag);
   system("pause");
return 0;}

QQ图片20130721182017.jpg (51.7 KB, 下载次数: 2)

QQ图片20130721182017.jpg
沙发
 楼主| 发表于 2013-7-22 21:33:16 | 只看该作者
怎么能更好的实现这个迭代呢?
板凳
发表于 2013-7-22 22:18:01 | 只看该作者
大虾们都睡觉了。不要等了。明天中午之前估计会有人回复你的
地板
发表于 2013-7-22 22:18:35 | 只看该作者
超神级 发表于 2013-7-22 22:18
大虾们都睡觉了。不要等了。明天中午之前估计会有人回复你的

没有哦、可是初一的数学水平看不懂这是什么
5#
发表于 2013-7-22 22:20:19 | 只看该作者
凡夫俗子 发表于 2013-7-22 22:18
没有哦、可是初一的数学水平看不懂这是什么

。。。。。。。。我也看不明白
6#
发表于 2013-7-22 23:11:33 | 只看该作者
看得眼晕,那张图尺寸太小
话说少年不考虑用mathematica吗,一定要自己用C编程?
7#
发表于 2013-9-23 00:00:41 | 只看该作者
大侠 好乱 请求格式化代码
8#
发表于 2013-11-25 17:24:25 | 只看该作者
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
9#
发表于 2013-11-29 18:07:33 | 只看该作者
刘强强 发表于 2013-11-25 17:24
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

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

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表