#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语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:585 |
C语言训练-最大数问题 (C语言代码).........关于-1浏览:730 |
母牛的故事 (C语言代码)浏览:1175 |
C语言考试练习题_排列 (C语言代码)浏览:1296 |
【出圈】 (C语言代码)浏览:548 |
C语言考试练习题_排列 (C语言代码)浏览:710 |
兰顿蚂蚁 (C++代码)浏览:1015 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:671 |
用筛法求之N内的素数。 (C语言代码)浏览:650 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:807 |