アプリ版:「スタンプのみでお礼する」機能のリリースについて

アルゴリズムってのがよくわからないんです。
キーボードより10個の整数を読み込んで表示し、大きい順に並べ替えて表示しなさい。そのアルゴリズムとは?という問題なんですがさっぱりわかりません。詳しく教えてくれませんか???

A 回答 (4件)

★すでに3つのアドバイスがありますが、もう1つアドバイスをプレゼント。


(1)10個の整数値を保存する配列を用意。→宣言
(2)繰り返し文の中で、10回『scanf』などで整数値を取得させる。→for文など
(3)取得した10個の整数(配列)をソートする。→バブルソートまたはC標準の『qsort』関数で行う。
(4)ソート後の結果を『printf』関数などで画面へ出力。

サンプル:
int main( void )
{
 int num[ 10 ];
 int i;
 
 for ( i = 0 ; i < 10 ; i++ ){
  /*
  『scanf』関数などでキーボードより整数値を num 配列に代入する。
  */
 }
 /*
 ここで、10個の配列データをソートする。
 */
 for ( i = 0 ; i < 10 ; i++ ){
  /*
  『printf』関数などでソート結果を画面へ出力する。
  */
 }
 return( 0 );
}

最後に:
・上記のコメントの部分は質問者さんが考えて下さい。
・ポイントは、データ入力、ソート処理、データ出力の3つのブロックに分けて
 プログラミングしていきます。→この手順こそが『アルゴリズム』って事です。
・以上。おわり。
    • good
    • 0

「何かをするための方法、手順」をアルゴリズムと呼びます。


プログラムはアルゴリズムをC言語などのプログラミング言語で実現したもの、と考えてください。

今回の場合は「10個の数字を大きい順に並べ替える方法」ですね。
一般的に「ソート(sort)」と呼ばれるものです。

大抵は整数値が配列に入っているものをソートするわけですが、
まずは、自分で配列の中身を並べ替えるにはどうしたら良いか考えてみると良いでしょう。
同じ配列の中身を入れ替えたり、新しい配列を作って結果を入れたり、いろいろ方法はあります。
後はそれをプログラムでどのように書くか。
この辺は他の方の回答にあるリンクが参考になるでしょう。
(というか、おそらく課題か何かでしょうから、既に授業でやっていると思うのですが)


プログラムを作るときは、問題を1つずつ切り分けて順番に作っていきましょう。
(何のプログラミング言語を使っているかわからないので、大まかな手順だけ)

(1) 要素数10の配列を作り、各要素に数値を代入する(最初は固定の数値を直接代入)

(2) ループを使って配列の中身を表示する

(3) 中身を表示する前に、配列の内容をソートする
  →他の方の回答にあるリンクを参考に

(4) 固定値の代入じゃなくて、キーボードから入力した数字を配列に入れるようにする
    • good
    • 0

参考になれば↓。



「いろいろなソートアルゴリズム」
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/al …

一番上の バブルソート がオーソドックスで地道なアルゴリズムです。
    • good
    • 0

>さっぱりわかりません



http://www5c.biglobe.ne.jp/~ecb/algorithm/algori …

>キーボードより10個の整数を読み込んで
入力・代入

>表示し
文字列・表示

>大きい順に並べ替えて
ソート

>表示
文字列・表示
    • good
    • 0

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