関数の課題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

関数の課題

#1

投稿記事 by » 18年前

学校の課題で
px,py,pzが指す三つの浮動小数点(double)数値が*px<=*py<=*pzと昇順になるようにソートする関数を作成しましょう。
という問題をだされました。が、いまいち解き方がわかりません。。

昇順という言葉の意味がわかってないためどう手をつければよいか・・・。
どなたか模範解答を教えてくれませんか?

管理人

Re:関数の課題

#2

投稿記事 by 管理人 » 18年前

とりあえず、昇順という意味は
小さい数から大きな数へ並べることです。
日本語は辞書で調べられます。
http://dictionary.goo.ne.jp/search.php? ... 12&jn.y=13

とりあえず、ご自分で調べられるだけ頑張って調べ、プログラムを組んでみましょう。

box

Re:関数の課題

#3

投稿記事 by box » 18年前

> 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)これ以上比べる必要がなくなったので、結果を出力する。

上記の手順を、ソースコードに落とし込んでみてください。

閉鎖

“C言語何でも質問掲示板” へ戻る