2013-10-22 31 views
-4

我需要寫在C++程序,它轉換毫米單位千米,米,釐米和毫米。換句話說,例如輸入7580341毫米,它應該輸出7580341毫米,等於7公里580米34釐米1毫米。相反,我得到7公里6米34釐米1毫米。我用模函數做了一些錯誤,我無法弄清楚。爲什麼它用cm和mm計算正確的值,而不是用m計算?請幫忙。轉換爲公里(在更小的單位例如米溢出)

所有最優秀的

帕夫萊

int mm, cm, m, km; 
cout << "Type in value in millimeter:\n"; 
cin >> mm; 

cm = mm/10; 
m = mm/1000; 
km = mm/1000000; 

cout << mm << "mm equals " << km << "km " << m%km << "m " << cm%m << "cm " << mm%cm << "mm\n"; 

return 0; 
+5

您沒有使用模運算符''%正確。閱讀它的功能。 – Roddy

回答

0

這是發生,因爲你不「刪除」你分配給每個單元的部分。

如果你知道它是如7公里,那麼構成這些公里的毫米就需要從總毫米數中移除,否則你將再次「使用」它們。

那麼,這樣做:

const int km = mm/1000000; 
if(km > 0) 
    mm -= 1000000 * km; 

等。您也可以使用%模運算符:

const int km = mm/1000000; 
mm %= 1000000; 
+0

他試圖在'cout'行中刪除它,但代碼有缺陷。 – Roddy

0

嗨需要使用模運算符

像這樣的事情

km = mm/1000000; 
m = (mm%1000000)/1000; 
cm = ((mm%1000000)%1000)/10; 
mm = ((mm%1000000)%1000)%10; 
相關問題