2012-04-17 14 views
1

私はプログラミングを学んでいます。「StroustrupによるC++を使ったプログラミング、原則と実践」。私は人の年齢を二重に読んで月に表示する必要があります。私の混乱は、例えば年齢22.5、それは22歳5ヶ月22歳6ヶ月と見なされるべきである。 22から5までを2つの異なる整数に分割する方法は?年齢を二重に読み取る方法

+0

あなたが整数を分割したいと思うのはなぜ? – KillianDS

+0

月に変換するには、12に掛けて小数部を追加したいと思います。 – Croc

+0

'22.5 'の解釈方法を決めるのはあなた次第です。それを明確に文書化してコーナーケースを処理するようにしてください。 – juanchopanza

答えて

1

考えてみましょう:あなたは年齢を年に入力してください。です。だから22.5年は22年6ヶ月と考えられるべきです。

1

22.5歳は22歳+0.5歳です。 0.5年= 6ヶ月。

これはあなたのために働く必要があります。

int years = floor(age);   // get the integer part of age -- that's years 
double frac = age - years;  // get the fractional part of age 
int months = round(12. * frac); // convert the fractional part into # of months 
+1

@GeorgeSkopstov:OPは本から学習しているので、回答をスプーンフィードしてOPがそれを理解できないようにするのは良い考えではないかもしれません。 –

+0

一般的に同意しますが、この場合、彼の質問に対する答えは必然的に「床」と「丸」に関係します。今、彼は機能を調べ、答えを理解できるはずです。私が見る1つの問題は、コード部分より答えの数学的な部分に多くの問題があるかもしれないということです。 –

+0

合意。しかし、OPに「22.5年= 22年6ヶ月」のコンセプトに問題がある場合、OPは一般的にコーディングするのが難しいでしょう。 –

関連する問題