POJ 2501 Average Speed G++

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
//不会跨越一天 
double miao(string x)
{
	int xs=(x[0]-'0')*10+(x[1]-'0');
	int fe=(x[3]-'0')*10+(x[4]-'0');
	int mi=(x[6]-'0')*10+(x[7]-'0');
	return xs*3600+fe*60+mi; 
}
int main()
{
	string s;
	double cti=0;//当前时间 
	double csp=0;//当前速度 
	double sum=0;//变速前行驶的距离 
	while(getline(cin,s).eof()!=1)
	{		
		if(s.size()>8)
		{
			string sa,sb;
			sa=s.substr(0,8);
			sb=s.substr(9,s.size());
			//cout<<sa<<endl;
			//cout<<sb<<endl;
			double ti=miao(sa); 
			double sp=0;
			for(int i=0;i<sb.size();i++)
			{
				sp=sp*10+sb[i]-'0';
			}
			sp=sp/3.6;//每秒多少米 
			//cout<<ti<<endl;
			//cout<<sp<<endl;
			sum=sum+(ti-cti)*csp;
			cti=ti;
			csp=sp;		 
		}else
		{
			double time=miao(s);
			cout<<s<<" "<<fixed<<setprecision(2)<<(sum+(time-cti)*csp)/1000.0<<" km"<<endl;
		}
	}
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值