1.5 演習課題

  3.演習課題1-3 交換分類法
<課題>
 以下に示したものは、交換分類法のプログラムです。このプログラムは各機能がmain関数の中で順次行われています。
 このプログラム中の、(1)データ読み込み、(2)データの交換、(3)データの出力、の部分を分離し、関数化しなさい。

<仕様> <プログラムリスト>

#include <stdio.h>
#define Max_data 100  /* データ数の上限*/

int main( void )
{
 int  i, j, tmp, input_data, count, data[Max_data];

 scanf("%d", &input_data);
 count = 0;
 while (input_data > 0) {
   data[count] = input_data;
   count++;
   scanf("%d", &input_data);
 }

 for (i = 0; i < count - 1; i++) {
   for (j = i + 1; j < count; j++) {
     if (data[i] > data[j]) {
       tmp = data[i];
       data[i] = data[j];
       data[j] = tmp;
     }
   }
 }

 printf("データの分類終了\n");
 for (i = 0; i < count; i++) {
   printf("%d\n", data[i]);
 }
}