2014-10-16 57 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

相關問題