数学问题。
在不经过shield时,竖直速度是1.所以时间就是y/1=y,,,,在经过shield时,时间为shield的数值长度*影响因素,然后总时间把他们加起来,最后再用水平方向的长度除以总时间,还有就是这个题目要用double。
#include<bits/stdc++.h> using namespace std; void solve(){ double x,y,x1,y1,a,b=0; scanf("%lf%lf",&x,&y); int t; scanf("%d",&t); for(int i=1;i<=t;i++) { scanf("%lf%lf%lf",&x1,&y1,&a); y-=y1-x1; b+=(y1-x1)*a; } b+=y*1.0; double cc=x/b; printf("%.11lf\n",cc); } int main(){ solve(); return 0; }