[ [[高橋のページ:http://tortoise1.math.ryukoku.ac.jp/~takataka/index-j.html]] ]
[ [[プログラミングおよび実習II]] ]

*プログラミングおよび実習II 2005年10月13日

#contents

**今日の課題: 単純選択法によるデータの並べかえ

***課題1013-A (締切:10月13日,延長不可)

10月12日の講義資料の演習問題(単純選択法により配列の中身を並べかえる関数を紙に書く)をやってください.

[[解答例>プログラミングおよび実習II/解答例#ex1013]]

***課題1013-B (締切:10月20日)

整数のデータが与えられたときに,

+ それを配列に格納する
+ それらを単純選択法によって並べかえる
+ できた配列の内容を表示する

というプログラムを作りましよう.名前は selectionsort.c としてください.
これまでの score1.c などと同様に,

- データの数は最大100個
- まずデータの数を入力し,次に各データを順番に入力する

こととします.ただし,以下のことに気をつけて作成して下さい.

- 配列の中身の表示には,以下のような関数 PrintData2() を使う
 void PrintData2(int data[], int n)
 {
    int i;
 
    for(i = 0; i < n; i++){
       printf("[%3d] ", data[i]);
    }
    printf("\n");
 }
- データの並べかえには,課題その1で作成した関数 Selection&#x0053;ort() を使う.ただし,この関数中で配列中の二つのデータを入れ替える処理の直後に Print&#x0044;ata2() を入れて,並べかえの途中経過を表示するようにして下さい.
実行例はこんな感じ.
 $ ./a.out 
 Input n: 4
 Input score[0]: 1
 Input score[1]: 2
 Input score[2]: 3
 Input score[3]: 4
 
 ##### original scores #####
 [  1] [  2] [  3] [  4]      <-- 入力した配列そのまま
 
 [  4] [  2] [  3] [  1]      <-- 最初の入れ替え後の配列
 [  4] [  3] [  2] [  1]      
 [  4] [  3] [  2] [  1]      <-- ならべかえ終了
 
 ##### sorted scores #####
 [  4] [  3] [  2] [  1]

**ポインタについて復習しよう

こちらをどうぞ: 「[[ポインタの話>http://tortoise1.math.ryukoku.ac.jp/~takataka/course2004/doc/pointer/]]」

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS