求解一道c语言题,用C语言做DescriptionA、B两地相距200公里.在一次军事行动中,A、B两支军队同时出发,面对面直线运动.A军每小时行军8公里,B军每小时行军5公里.有一个通讯兵要为这两军传递信息

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 20:11:41
求解一道c语言题,用C语言做DescriptionA、B两地相距200公里.在一次军事行动中,A、B两支军队同时出发,面对面直线运动.A军每小时行军8公里,B军每小时行军5公里.有一个通讯兵要为这两军传递信息

求解一道c语言题,用C语言做DescriptionA、B两地相距200公里.在一次军事行动中,A、B两支军队同时出发,面对面直线运动.A军每小时行军8公里,B军每小时行军5公里.有一个通讯兵要为这两军传递信息
求解一道c语言题,用C语言做
Description
A、B两地相距200公里.在一次军事行动中,A、B两支军队同时出发,面对面直线运动.A军每小时行军8公里,B军每小时行军5公里.有一个通讯兵要为这两军传递信息,他与A军同时、同方向出发,行驶速度为每小时45公里.当他碰到B军时,算是完成了一次通讯;此时他立即调头驶向A军;碰到A军后,也算完成了一次通讯;此时他又立即调头驶向B军.如此来来回回,每当完成了一次通讯时,他会看一下A、B两军之间的距离,如果该距离小于距离N,他就停止行动.问该通讯兵从出发,到停止行动,共完成了几次通讯?
The Input
你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据.每组输入数据占一行,输入为最后A,B两地的最小距离数N,单位为公里,N为实数,0<N<200,在行首和行尾没有多余的空格.输入0时结束.
The Output
对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的文本终端,例如你在Windows中启动该程序所用的命令行终端)依次输出从标准输入设备中读入的每一组测试数据对应的结果,所有数据前后没有多余的空行,两组数据之间也没有多余的空行.每组输出数据由一行组成,每行由一个数组成,在行首和行尾没有多余的空格.
Sample Input
0.1
199
Sample Output
27
1

求解一道c语言题,用C语言做DescriptionA、B两地相距200公里.在一次军事行动中,A、B两支军队同时出发,面对面直线运动.A军每小时行军8公里,B军每小时行军5公里.有一个通讯兵要为这两军传递信息
#include
int main()
{
double n,v1 = 8,v2 = 5,v3 = 45,pos1,pos2;
double t;
int cnt;
while(scanf("%lf",&n) != EOF)
{
cnt = 0;
pos1 = 0;
pos2 = 200;
while(pos2-pos1 >= n)
{
t = (pos2-pos1)/(v3+v2);
cnt++;
pos2 -= v2*t;
pos1 += v1*t;
if(pos2-pos1 < n) break;
t = (pos2-pos1)/(v3+v1);
cnt++;
pos2 -= v2*t;
pos1 += v1*t;
if(pos2-pos1 < n) break;
}
printf("%d\n",cnt);
}
return 0;
}