#include<cstdio> #include<iostream> #include<cmath> using namespace std; int main(void) { int L_box[30],W_box[30],x_box[30],y_box[30]; int R_box[30],a_box[30],v_box[30],s_box[30]; int i=0,n; do{ scanf("%d%d%d%d%d%d%d%d",L_box+i,W_box+i,x_box+i,y_box+i,R_box+i,a_box+i,v_box+i,s_box+i); if(L_box[i]==0) break; i=i+1; }while(1); n=i; for(i=0;i<n;i++) { double x=(double)x_box[i],y=(double)y_box[i],v=(double)v_box[i],s=(double)s_box[i],L=(double)L_box[i],W=(double)W_box[i],R=(double)R_box[i]; double angle=1.0*a_box[i]*acos(-1)/180; double dx=v*s*cos(angle),dy=v*s*sin(angle); x=x+dx; y=y+dy; while(x>L-R || x<R || y>W-R || y<R ) { if(x>L-R) x=2*(L-R)-x; if(y>W-R) y=2*(W-R)-y; if(x<R) x=2*R-x; if(y<R) y=2*R-y; } if(i<n-1) printf("%.2lf %.2lf\n",x,y); else printf("%.2lf %.2lf",x,y); } return 0; }
有误差,满足给出数据,但是对于大数据有误差,答案错误 #include<cstdio> #include<iostream> #include<cmath> using namespace std; int main(void) { int L_box[30],W_box[30],x_box[30],y_box[30]; int R_box[30],a_box[30],v_box[30],s_box[30]; int i=0,n; do{ scanf("%d%d%d%d%d%d%d%d",L_box+i,W_box+i,x_box+i,y_box+i,R_box+i,a_box+i,v_box+i,s_box+i); if(L_box[i]==0) break; i=i+1; }while(1); n=i; for(i=0;i<n;i++) { int s=s_box[i]; double x=(double)x_box[i],y=(double)y_box[i],v=(double)v_box[i],L=(double)L_box[i],W=(double)W_box[i],R=(double)R_box[i]; double angle=1.0*a_box[i]*acos(-1)/180; double dx=v*cos(angle),dy=v*sin(angle); for(int j=1;j<=s;j++) { x+=dx,y+=dy; if(x>L-R) x=2*(L-R )-x,dx=-dx; if(y>W-R) y=2*(W-R)-y,dy=-dy; if(x<R) x=2*R-x,dx=-dx; if(y<R) y=2*R-y,dy=-dy; } if(i<n-1) printf("%.2lf %.2lf\n",x,y); else printf("%.2lf %.2lf",x,y); } return 0; }
0.0分
0 人评分
【密码】 (C语言代码)浏览:350 |
A+B for Input-Output Practice (VII) (C++代码)浏览:643 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:573 |
校门外的树 (C语言代码)浏览:733 |
1025题解浏览:796 |
数组与指针的问题浏览:760 |
简单的a+b (C语言代码)浏览:572 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:839 |
最好的,浏览:601 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:538 |