#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语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:928 |
【蟠桃记】 (C语言代码)浏览:634 |
母牛的故事 (C语言代码)浏览:414 |
printf基础练习2 (C语言代码)浏览:910 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:663 |
WU-整除问题 (C++代码)浏览:563 |
WU-拆分位数 (C++代码)浏览:754 |
文科生的悲哀 (C语言代码)浏览:1297 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:843 |
C二级辅导-等差数列 (C语言代码)浏览:672 |