プロが教える店舗&オフィスのセキュリティ対策術

10人分の身長を記入し
それを高い順に並べ替える
プログラムを
簡単に書くには
どうしたら良いでしょうか?

お願い致します。

A 回答 (3件)

すごい簡単な方法を挙げてみますね。


最初の身長から考え、1番目ならば1番目と2番目について考えます。
高い順ですから、1番目より2番目のほうが大きい場合に入れ替えを行います。次に2番目と3番目について考え、2番目よりも3番目のほうが大きければ入れ替えを行います。このように最後まで行うと、必ず10番目に最小値がきます。
次のループでは9番目まで行うと、1番目から9番目の中で最小値、かつ10番目よりも大きい値が決まります。
このように0番目まで繰り返していくと高い順に並べることができます。
サンプルとして下にプログラムを示しておきます。
アルゴリズムについては上の方法で行いました。
自分の中では最も簡単な方法だと思うので、参考にしていただいたら光栄です。
#include <stdio.h>
void main(void)
{
 double height[10];
int i,j;
double k;

printf("10人分の身長を入力してください\n");
for(i=0;i<10;i++)
{
printf("%d人目=",i);scanf("%lf",&height[i]);
}

for(i=8;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(height[j]<height[j+1])
{
k=height[j];
height[j]=height[j+1];
height[j+1]=k;
}
}
}
printf("----ソート結果----\n");
for(i=0;i<10;i++)
{
printf("%lf\n",height[i]);
}
}
一応サンプルですが、自分で考えることも大切ですよ。
    • good
    • 0

アルゴリズムの話ですか?


身長を書いた紙切れを並べて、あなただったらどうやって並べるか考えて下さい。
    • good
    • 0

あなたに取っての「簡単」が分かりませんが、


私にとって簡単な方法は、qsort()を使うことです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!