• 締切済み

10個の整数を入力して小さい順にソートする

C言語を使って、10個の整数を読み込んで小さい順にソートするプログラムを作っています。 #include<stdio.h> #include<stdlib.h> int main() { int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int i; for (i = 0; i < 9; ++i ) { printf("No. %d Please Enter!", a[i]); scanf("%d", &a[i]); } return(0); } これで、10個の整数を読み込んだ後、ソートする方法が分かりません。 どなたか教えていただけますでしょうか^^;

みんなの回答

  • tig33
  • ベストアンサー率50% (6/12)
回答No.3

困り度が大変困っている・・ 大変でしょうが、学校の課題のようですね。 以前もソート(バブルソート)で、回答したことがありますが、同じような質問と回答が、ごまんとあります。 質問者さんは、「ソート」で、このカテゴリーを検索されたのでしょうか? 質問する前に、ご自分で、情報の検索と学習されることを期待します。 がんばってください。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

10個ですか?9個ですか? 今のコードは9個分しか領域がありません。 また、scanf()で入力するのでしたら、 > int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; この初期化は不要です。

ibadora
質問者

補足

ごめんなさい、十個の整数が正解です。 ソートする部分のソースを教えて下さい。

  • Willyt
  • ベストアンサー率25% (2858/11131)
回答No.1

トーナメント方式というのがあります。二つの数を取りだし、大きなものを勝ち組に小さなものに負け組に組み入れます。これを勝ち組グループで続けると最後に一個が残りますね。これが一番。次は最後の負け組グループに移って同じことをやります。これを繰り返せば最終的に全部がソーティングできますね。これを入れ子の方式を使って行なうのです。但し10個ならその心配はないのですが、あまり沢山の数をこれでやるとスタックオーバーフローになりますから、負け組はHDに書き出す方式にする必要があります。