2017-09-29 3 views
0

私はkgで私の体重を入力すると私に石のための正しい出力を与えるが、私のポンドの重量はオフです。kgから石とポンドに変換するとき

仮定する2.2ポンドその石であなた重みを与えるとポンドの小数点する石

想定されキロ と14lbsで、私の石は良いのですが、ポンドはHERESに道オフスクリプト

任意のヘルプです
#include <iostream> 
using namespace std; 
//declarations 
const float LBS_PER_KG=2.2; 
const float LBS_PER_STONE=14; 
const float STONE_PER_KG=6.36; 

int main() 
{ 

float weightInKG; 
float weightInSTONE; 
float weightInLBS; 

cout <<"enter a measurement in Kilograms"; 
cin >> weightInKG; 

weightInSTONE = static_cast<int>(weightInSTONE*LBS_PER_KG/LBS_PER_STONE); 
weightInSTONE = weightInKG/STONE_PER_KG; 
weightInLBS = weightInKG/LBS_PER_KG; 
cout <<weightInKG<<"KG = "<<weightInSTONE<<"Stones and" 
    <<weightInLBS<<"Pounds"; 
cout <<endl; 
return 0; 
} 
+2

希望の出力と実際の出力の例を挙げてください。 – Neo

+0

C++プログラムはスクリプトではありません。 –

+0

出石は7石と7ポンドでなければなりません。イムは7.53石と7.53ポンドを得ています。 – Colton

答えて

2

weightInLBSの計算が間違っています。あなたがプログラムにさらに変更のためのいくつかの問題を回避するために、除算

たぶん
weightInLBS = weightInKG * LBS_PER_KG; // [lbs] = [kg] * ([lbs]/[kg]) 

の代わりに乗算する必要があり、あなただけの希望たい場合は、コメントで質問に対するあなたはゼロ

float weightInKG = 0; 
float weightInSTONE = 0; 
float weightInLBS = 0; 

であなたの変数を初期化する必要がありますポンドであなたの石の値の小数点区切り文字の後に値をdispalyために、あなたはこの計算

weightInLBS = (weightInSTONE - static_cast<int>(weightInSTONE)) * LBS_PER_STONE; 
// cut off the value before decimal separator and convert it to LBS 

を使用する必要があり、これは、結果を表示するために

cout <<weightInKG<<"KG = "<<static_cast<int>(weightInSTONE)<<"Stones and"<<weightInLBS<<"Pounds"<<endl; 
+0

それは私がキログラムを入力するときに今よりよく動作するように見えました。それは石とポンドのキログラムの重量を私に与えます。代わりにこれは石と小数のポンドでなければなりません。だから私は47.9キロを入力すれば私は7.53を取得し、私はポンドで0.53を必要とし、丸めた。 – Colton

+0

ありがとうございました! – Colton

+0

だから私はすべての変更と私は7石を置くが、私は0ポンドを得ることができない停止を得る – Colton

関連する問題