-4

mm 単位を km、m、cm、mm に変換するプログラムを c++ で作成する必要があります。つまり、たとえば 7580341 mm を入力すると、7580341mm は 7km 580m 34cm 1mm と等しくなるはずです。代わりに 7km 6m 34cm 1mm を取得しています。モジュロ関数で何か間違ったことをしましたが、それを理解できません。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;
4

3 に答える 3

0

これは、各ユニットに割り当てたパーツを「削除」しないために発生します。

たとえば 7 km であることがわかっている場合、それらのキロメートルを構成するミリメートルをミリメートルの合計数から削除する必要があります。そうしないと、それらを再び「使用」することになります。

したがって、次のようにします。

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

等々。%モジュロ演算子も使用できます。

const int km = mm / 1000000;
mm %= 1000000;
于 2013-10-22T14:17:18.240 に答える
0

こんにちはモジュロ演算子を使用する必要があります

このようなもの

km = mm/1000000;
m = (mm%1000000)/1000;
cm = ((mm%1000000)%1000)/10;
mm = ((mm%1000000)%1000)%10;
于 2013-10-22T14:34:38.417 に答える