首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

队伍长度为L米,并匀速前进。传令兵以匀速,先从队尾跑到队头,再从队头跑回队尾,期间队伍行进了S米。请教传令兵一共跑了多少米

2013-12-05 
队伍长度为L米,并匀速前进。传令兵以匀速,先从队尾跑到队头,再从队头跑回队尾,期间队伍行进了S米。请问传令

队伍长度为L米,并匀速前进。传令兵以匀速,先从队尾跑到队头,再从队头跑回队尾,期间队伍行进了S米。请问传令兵一共跑了多少米?
XTU上遇到一个无可奈何的问题,小问一下,有志愿者援手没??

题目要求是:
Description 

 
题目描述

队伍长度为L米,并匀速前进。传令兵以匀速,先从队尾跑到队头,再从队头跑回队尾,期间队伍行进了S米。请问传令兵一共跑了多少米? 

输入

有多个样例。每行输入两个整数L(1 ≤ L ≤ 10,000),S(1≤S≤10,000)。如果L和S都为0则表示输入结束,这个样例不需要处理。 

输出

每行输出一个样例的结果,保留2位小数。 

样例输入
300 400
100 100
0 0



样例输出
800.00
241.42
//****************************************************
我写的代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int L,S,num=0;
float result;
scanf("%d %d",&L,&S);
while(S||L)
{
if(L<1||L>10000||S<1||S>10000)break;
result=(float)(L+sqrt(L*L+S*S));
printf("%.2f\n",result);
scanf("%d %d",&L,&S);
}
return 0;
}

#include<stdio.h>
#include<math.h>
int main()
{
int L,S,num=0;
float result;
scanf("%d %d",&L,&S);
while(S||L)
{
if(L<1||L>10000||S<1||S>10000)break;
result=(float)(L+sqrt(L*L+S*S));
printf("%.2f\n",result);
scanf("%d %d",&L,&S);
}
return 0;
}


 
C OJ 菜
[解决办法]
用double不要用float试试,数据大的时候float精度不够

热点排行