哪位大侠会改编c++编程啊?不同的算法改编一下~~
#include "math.h" #include "iostream" #include "stdio.h" #include "stdlib.h" using namespace std; void main() { double hour,pai,om,second,i,minute,e,c,a,GM,w,tao,X,Y,Z,VX,VY,VZ,t,r1; double X0,Y0,Z0; double n,M,E1,E2; int x,y,k; hour = 0.0; pai = 3.1415926535898; om = 100.0; second = 0.0; i = 30.0; minute = 0.0; e = 0.01; c = 299792458.0; a = 9599999.888; GM = 3986005e8; w = 50.0; tao = 0.0; X = 0.0; Y = 0.0; Z = 0.0; VX = 0.0; VY = 0.0; VZ = 0.0; cout<<"时间t:"; cin>>hour>>minute>>second; double u=398600500000000; double R[3][3],P[3][3]; double om1=om*pai/180; n=sqrt(u/(a*a*a)); t=hour*3600+minute*60+second; M=n*(t-tao); E1=M; E2=M+e*sin(E1); while(fabs(E2-E1)>0.00000000000000000001) { E1=E2; E2=M+e*sin(E1); } r1=a*(1-e*cos(E2)); double Ro[3][3]={{cos(om1),-(sin(om1)),0},{sin(om1),cos (om1),0},{0,0,1}}; double Ri[3][3]={{1,0,0},{0,cos(i),(-sin(i))},{0,sin(i),cos (i)}}; double Rw[3][3]={{cos(w),(-sin(w)),0},{sin(w),cos(w),0}, {0,0,1}}; X=a*(cos(E2)-e); Y=a*sqrt(1-e*e)*sin(E2); Z=0; for(x=0;x<=2;x++) { for(y=0;y<=2;y++) { P[x][y]=0; for(k=0;k<=2;k++) P[x][y]+=Ri[x][k]*Ro[k][y]; } } for(x=0;x<=2;x++) { for(y=0;y<=2;y++) { R[x][y]=0; for(k=0;k<=2;k++) R[x][y]+=Rw[x][k]*P[k][y]; } } X0=R[0][0]*X+R[0][1]*Y+R[0][2]*Z; Y0=R[1][0]*X+R[1][1]*Y+R[1][2]*Z; Z0=R[2][0]*X+R[2][1]*Y+R[2][2]*Z; printf("X=%fn",X0); printf("Y=%fn",Y0); printf("Z=%fn",Z0); VX=R[0][0]*-a*a*n/r1*sin(E1)+R[0][1]*a*a*n/r1*sqrt(1-e*e)*cos(E1)+R[0][2]*0; VY=R[1][0]*-a*a*n/r1*sin(E1)+R[1][1]*a*a*n/r1*sqrt(1-e*e)*cos(E1)+R[1][2]*0; VZ=R[2][0]*-a*a*n/r1*sin(E1)+R[2][1]*a*a*n/r1*sqrt(1-e*e)*cos(E1)+R[2][2]*0; printf("VX=%fn",VX); printf("VY=%fn",VY); printf("VZ=%fn",VZ); cin>>n; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
主程序了一大堆代码,光看一眼就头痛了,为什么 不发 算法部分写成函数
主程序里只留调用和输出
难怪要找大使...这代码...看那堆变量就想骂脏话
好一段代码,连看的兴趣都没了。
改变量名啊,哈哈哈
对啊!!!
交作业吗?
只要能用不同的,相似的语句改一下 然后跟上面这段代码不同 但是还是能运算出结果就行
能将for语句改为while语句吗?
问题描述不够详细,什么算法,什么改编,怎么改。。。。