杭电OJ--1.2.2--Biker's Trip Odometer

Problem Description
Most bicycle speedometers work by using a Hall Effect sensor fastened to the front fork of the bicycle. A magnet is attached to one of the spokes on the front wheel so that it will line up with the Hall Effect switch once per revolution of the wheel. The speedometer monitors the sensor to count wheel revolutions. If the diameter of the wheel is known, the distance traveled can be easily be calculated if you know how many revolutions the wheel has made. In addition, if the time it takes to complete the revolutions is known, the average speed can also be calculated. 
For this problem, you will write a program to determine the total distance traveled (in miles) and the average speed (in Miles Per Hour) given the wheel diameter, the number of revolutions and the total time of the trip. You can assume that the front wheel never leaves the ground, and there is no slipping or skidding.
 

Input
Input consists of multiple datasets, one per line, of the form:

diameter revolutions time

The diameter is expressed in inches as a floating point value. The revolutions is an integer value. The time is expressed in seconds as a floating point value. Input ends when the value of revolutions is 0 (zero).
 

Output
For each data set, print:

Trip #N: distance MPH

Of course N should be replaced by the data set number, distance by the total distance in miles (accurate to 2 decimal places) and MPH by the speed in miles per hour (accurate to 2 decimal places). Your program should not generate any output for the ending case when revolutions is 0.

Constants

For p use the value: 3.1415927.
There are 5280 feet in a mile.
There are 12 inches in a foot.
There are 60 minutes in an hour.
There are 60 seconds in a minute.
There are 201.168 meters in a furlong.
 

Sample Input
26 1000 5
27.25 873234 3000
26 0 1000
 

Sample Output
Trip #1: 1.29 928.20
Trip #2: 1179.86 1415.84
题目大意:

计算 总路程和平均速度。

该题涉及到单位转换的问题。最后保留两位小数。

单位转换具体如下:

一英里有5280英尺。
一英尺有12英寸。
一小时里有60分钟。
一分钟有60秒。

输入时间以秒为单位,直径以英尺为单位


进制转换过程中用double存数据


最后输出保留两位有效数字


以0作为输入的结束

源代码:

#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
	const double pi = 3.1415927;
	int j = 1;
	double diameter,time;
	int revolution;
	while (cin >> diameter >> revolution >> time)
	{
		if (revolution == 0)
			break;
		double C,times;
		double sum1,sum2;
		C = double(double(diameter) / 12 )/ 5280 * pi;
		sum1 = C * revolution;
		times = double (time)/3600;
		sum2 = double(sum1) / times;
		cout << "Trip #" << j << ": " << setiosflags(ios::fixed) << setprecision(2)<<sum1 << " " <<  setiosflags(ios::fixed) << setprecision(2)<<sum2 << endl;
		j++;
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值