/* ------------------------------------------------------- 隣接交換法によるソート sort01_B_rinsetu_koukan ------------------------------------------------------- */ #include #define YOUSO 5 int su[YOUSO]; /* ----- 関数のプロトタイプ宣言 -----*/ void num_input(void); void num_sort(void); void num_display(void); /* ---------- main関数 ---------- */ int main(void) { num_input(); num_sort(); num_display(); return 0; } /* ---------- 入力処理 num_input関数 ---------- */ void num_input(void) { int i; printf("%d個の数字をソートします(隣接交換法)\n",YOUSO); for ( i=0 ; i<=YOUSO-1 ; i++ ){ printf("NO.%2d -->",i+1); scanf("%d",&su[i]); } } /* ---------- ソート処理 num_sort関数 ---------- */ void num_sort(void) { int n,k,w,i; n=YOUSO-1; while (n>0) { k=0; while (ksu[k+1]) { w=su[k]; su[k]=su[k+1]; su[k+1]=w; } /*----------(途中経過表示)----------*/ printf("nが %d の処理",n); for (i=0 ;i<=YOUSO-1; i++) { printf("%4d",su[i]); } printf("\n"); /*------------------------------------*/ k++; } /*----------(途中経過表示)----------*/ printf("\n"); /*------------------------------------*/ n--; } } /* ---------- 表示処理 num_display関数 ---------- */ void num_display(void) { int i; printf("\n小さい順に表示します\n"); for ( i=0 ; i<=YOUSO-1 ; i++ ){ printf("%4d",su[i]); } printf("\n\n"); }