首页 > 其他 > 详细

5.17移数字游戏

时间:2017-04-30 12:18:22      阅读:267      评论:0      收藏:0      [点我收藏+]

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移数字游戏

原文:http://www.cnblogs.com/dd2hm/p/6788880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!