5.17移数字游戏
Posted 王小东大将军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.17移数字游戏相关的知识,希望对你有一定的参考价值。
Q:有一个包含9个圆圈的数阵,将1~8这8个数随机写到数阵外围,只剩下中间一个空圆圈。规定每个数字只能按照数阵中的直线从一个圆圈移动到另一个空的圆圈中。通过若干步的移动,将数阵移动成
1--2--3
8-- --4//中间数字是空格
7--6--5
编写程序,输出数字每一步的移动过程。
#include <iostream> #include<cstdio> using namespace std; int m[8]; getstep(int m[]) { int i,j,tmp; for(i=0;i<7;i++) //冒泡排序 for(j=0;j<7-i;j++) if(m[j]>m[j+1]) { tmp=m[j]; m[j]=m[j+1]; m[j+1]=tmp; printf("(%d --> 0)\n",j+1); //输出移动步骤 printf("(%d --> %d)\n",j+2,j+1); printf("(0 --> %d)\n",j+2); } printf("\n"); } print(int m[]) { printf(" [%d]--[%d]--[%d]\n",m[0],m[1],m[2]); printf(" | %c | %c | \n",92,47); printf(" [%d]--[ ]--[%d]\n",m[7],m[3]); printf(" | %c | %c | \n",47,92); printf(" [%d]--[%d]--[%d]\n",m[6],m[5],m[4]); } int main() { int i; printf("input 8 integer to arrange this matrix\n"); for(i=0;i<8;i++) scanf("%d",&m[i]); printf("initial data matrix is like\n"); print(m); printf("\nMOVE STEP:\n"); getstep(m); printf("the result of moving is\n"); print(m); return 0; }
以上是关于5.17移数字游戏的主要内容,如果未能解决你的问题,请参考以下文章