学校の課題で
px,py,pzが指す三つの浮動小数点(double)数値が*px<=*py<=*pzと昇順になるようにソートする関数を作成しましょう。
という問題をだされました。が、いまいち解き方がわかりません。。
昇順という言葉の意味がわかってないためどう手をつければよいか・・・。
どなたか模範解答を教えてくれませんか?
関数の課題
Re:関数の課題
とりあえず、昇順という意味は
小さい数から大きな数へ並べることです。
日本語は辞書で調べられます。
http://dictionary.goo.ne.jp/search.php? ... 12&jn.y=13
とりあえず、ご自分で調べられるだけ頑張って調べ、プログラムを組んでみましょう。
小さい数から大きな数へ並べることです。
日本語は辞書で調べられます。
http://dictionary.goo.ne.jp/search.php? ... 12&jn.y=13
とりあえず、ご自分で調べられるだけ頑張って調べ、プログラムを組んでみましょう。
Re:関数の課題
> px,py,pzが指す三つの浮動小数点(double)数値が*px<=*py<=*pzと昇順になるようにソートする関数を作成しましょう。
まずは、プログラムと関係なしに、手で求めることを考えてみましょう。
3つの浮動小数点数を、順に3.0, 1.0, 2.0とします。
これらを昇順に(小さい値が先頭にくるように)並べるには、
どういう手順を踏むでしょうか?
【手順の例】
1)1個目(3.0)と2個目(1.0)を比べる。
1個目の方が大きいので、入れ替える。その結果、1.0, 3.0, 2.0の順になる。
2)1個目(1.0)と3個目(2.0)を比べる
1個目の方が小さいので、入れ替えない。1.0, 3.0, 2.0の順のまま。
3)2個目(3.0)と3個目(2.0)を比べる。
2個目の方が大きいので、入れ替える。その結果、1.0, 2.0, 3.0の順になる。
4)これ以上比べる必要がなくなったので、結果を出力する。
上記の手順を、ソースコードに落とし込んでみてください。
まずは、プログラムと関係なしに、手で求めることを考えてみましょう。
3つの浮動小数点数を、順に3.0, 1.0, 2.0とします。
これらを昇順に(小さい値が先頭にくるように)並べるには、
どういう手順を踏むでしょうか?
【手順の例】
1)1個目(3.0)と2個目(1.0)を比べる。
1個目の方が大きいので、入れ替える。その結果、1.0, 3.0, 2.0の順になる。
2)1個目(1.0)と3個目(2.0)を比べる
1個目の方が小さいので、入れ替えない。1.0, 3.0, 2.0の順のまま。
3)2個目(3.0)と3個目(2.0)を比べる。
2個目の方が大きいので、入れ替える。その結果、1.0, 2.0, 3.0の順になる。
4)これ以上比べる必要がなくなったので、結果を出力する。
上記の手順を、ソースコードに落とし込んでみてください。