2014-04-03 58 views
0

55行:我寫了」V =(pow(vx,2)+ pow(vy,2))^ 0.5 ;「錯誤:無效的操作數到二進制表達式(「double」和double「)是什麼意思?

我有錯誤:無效的操作數到二進制表達式(」雙「和雙」)。這是什麼意思?

請幫忙!

INT主要(){

FILE *fp, *fopen(); 
fp=fopen("Orbit2", "w"); 

double M,G,y0,vx,vy,x,y,h,t,T,m,V, positionx,positiony,velocityx,velocityy,energy,kinetic,potential; 
G=6.67*pow(10,-11); 
h=1000; 
m=7.345*pow(10,22); 
t=0; 
M=1.99*pow(10,30); 
y=0; 
y0=0; 
x=1.5*pow(10,11); 
vx=0; 
vy=22350; 
energy=kinetic+potential; 

T=t+h; 
for (T=0; T<110000; T++) 
{ 

    printf("y=%lf,x=%lf\n", y,x); 
    fprintf(fp,"%lf,%lf\n", y,x); 

    V=(pow(vx,2)+pow(vy,2))^0.5; 

    positionx=x+(h/(double)6.0)*((kx1(vx))+(2*kx2(G,M,h,x,y,vx))+(2*kx3(G,M,h,x,y,vx,vy))+(kx4(G,M,h,x,y,vx,vy))); 
    positiony=y+(h/(double)6.0)*((ky1(vy))+(2*ky2(G,M,h,x,y,vy))+(2*ky3(G,M,h,x,y,vx,vy))+(ky4(G,M,h,x,y,vx,vy))); 
    velocityx=vx+(h/(double)6.0)*((kvx1(G,M,x,y))+(2*kvx2(G,M,h,x,y,vx,vy))+(2*kvx3(G,M,h,x,y,vx,vy))+(kvx4(G,M,h,x,y,vx,vy))); 
    velocityy=vy+(h/(double)6.0)*((kvy1(G,M,x,y))+(2*kvy2(G,M,h,x,y,vx,vy))+(2*kvy3(G,M,h,x,y,vx,vy))+(kvy4(G,M,h,x,y,vx,vy))); 

    x=positionx; 
    y=positiony; 
    vx=velocityx; 
    vy=velocityy; 

    if ((fabs(positiony-y0)<100) && (fabs(positionx-x)<100)) 
    { 
     break; 
    } 


} 

fclose(fp); 
return 0; 

}

回答

相關問題