首页 > 代码库 > 5.17移数字游戏
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移数字游戏
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。