数学趣题——移数字游戏

应用冒泡排序思想,实现数阵中数字的移动过程

源码:

   1: #include <stdio.h>
   2:  
   3: void getStep(int m[])            /*显示数阵中数字移动的步骤*/
   4: {
   5:     int i, j, tmp;
   6:     for(i = 0; i < 7; i++)  /*冒泡排序*/
   7:         for(j = 0; j < 7 - i; j++)
   8:             if(m[j] >= m[j+1])
   9:             {
  10:                 tmp = m[j];
  11:                 m[j] = m[j+1];
  12:                 m[j+1] = tmp;       /*数据的交换*/
  13:                 printf("(%d# --> 0#)\n", j + 1);
  14:                 printf("(%d# --> %d#)\n", j + 2, j + 1);
  15:                 printf("(0# --> %d#)\n", j + 2);     /*输出移动步骤*/
  16:             }
  17:     printf("\n");
  18: }
  19:  
  20: void Print(int m[])            /*打印出当前数阵的状态*/
  21: {
  22:     printf("  [%d]--[%d]--[%d]\n", m[0], m[1], m[2]);
  23:     printf("   |  %c |  %c | \n", 92, 47);
  24:     printf("  [%d]--[ ]--[%d]\n", m[7], m[3]);
  25:     printf("   |  %c |  %c | \n", 47, 92);
  26:     printf("  [%d]--[%d]--[%d]\n", m[6], m[5], m[4]);
  27: }
  28:  
  29: int main()
  30: {
  31:     int i , m[8];
  32:     printf("Please input 8 integer (1~8) to arrange this matrix\n");
  33:     for(i = 0; i < 8; i++)
  34:         scanf("%d", &m[i]);
  35:     printf("The initial data matrix is like\n");
  36:     Print(m);
  37:     printf("\nMove Step:\n");
  38:     getStep(m);
  39:     printf("The result of moving is\n");
  40:     Print(m);
  41:     return 0;
  42: }
原文地址:https://www.cnblogs.com/steven_oyj/p/1744167.html