数学趣题——移数字游戏
应用冒泡排序思想,实现数阵中数字的移动过程
源码:
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: }

浙公网安备 33010602011771号