2014-10-16 168 views
-2

我试图将米转换成英尺&英寸。米到英尺

踢的是让米正确拆分成英尺和英寸当然。

例如1.78应等于F 5年10

meters = 0.3048 * feet; 

    centimeters = 2.54 * inches; 

or 

const double METERS_PER_FOOT = 0.3048; 

const double INCHES_PER_FOOT = 12.0; 

我有骨架

cout << "How tall are you in meters? \n"; 

cin >> meters; 


cout << "You're this tall in feet and inches F" << feet << " IN" << inches "\n"; 

我怎么就如何设置的公式来获取分开的右毫无头绪。

我不能使用cMath或我在其他示例中看到的这种转换。

+1

如果你不能使用cMath,也许你可以使用数学呢? – 2014-10-16 22:26:38

+0

将米转换为英寸,然后将英寸转换为英尺+英寸。你知道该怎么做,对吧? – clcto 2014-10-16 22:27:31

+0

这是简单的数学计算,不需要'cMath'或任何“转换事物”。如果你是用铅笔和纸做的话,你会怎么做? – 2014-10-16 22:30:19

回答

1
#include <math.h>  /* floor */ 

double myLength = 1.88; 
double feet = floor(myLength/0.3048); 
myLength -= feet * 0.3048; 
double inches = floor(myLength/0.0254); 
3

这是一个比编程问题更重要的数学问题。考虑到以米为单位的长度,你需要将小数部分转换为英寸。你可以用整数铸造模运算做到这一点:

const double METERS_PER_FOOT = 0.3048; 
const double INCHES_PER_FOOT = 12.0; 
double heightInMeters = 1.78; 
double heightInFeet = heightInMeters/METERS_PER_FOOT; 
int feet = (int)heightInFeet; 
int inches = (int)((heightInFeet - feet) * INCHES_PER_FOOT + 0.5); 

的最后一步小数部分(heightInFeet - feet),在一只脚的英寸数乘以它得到的英寸数,然后通过添加半轮次并截断为一个整数。

0

这可能会更好。它更简单,我猜。它以米和厘米为单位输入,然后以英尺和英寸输出。它最初将所有读数转换为米,然后将metrs转换为英尺和英寸。

float cms,metr; 
metr+=cms/100; 
float floatFeet = metr* 3.28084; 
int feet = (int)floatFeet; 
int inches = (int)((floatFeet - feet) * 12.0); 

cout<<"the length is "<<feet<<"feet"<<inches<<"inch"; 

首先它将仪表转换为浮点英尺。通过第二步int feet=(int)floatFeet它消除了小数。通过第三步它将小数部分转换为英寸。

+0

与接受的答案一样,只有没有常数和没有舍入。 – isync 2017-07-30 12:09:57