📄 eightnum.c
字号:
#include <stdio.h>
static int Part[3][3]; /*存储各项的位置*/
static int station1,station2; /*存储0,1的位置*/
int main()
{
int i,j;
printf("请输入个位置的数字(空格用0表示)\n");
printf("从左至右,从上到下依次为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",Part[i][j]);
printf("\n");
}
Find();
return(0);
}
void Find()
{
int i,j,midlle=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(Part[i][j]==0)
station1=i*10+j;
if(Part[i][j]==1)
station2=i*10+j;
}
stepzero();
}
void stepzero()
{
if(station2==0)
{
switch(station1)
{
case 22: Part[2][2]=Part[2][1];
case 21: Part[2][1]=Part[2][0];
case 20: Part[2][0]=Part[1][0];
Part[1][0]=0;
break;
case 2: Part[0][2]=Part[0][1];
case 1: Part[0][1]=Part[1][1];
case 11: Part[1][1]=Part[1][0];
Part[1][0]=0;
break;
case 12: Part[1][2]=Part[1][1];
Part[1][1]=Part[1][0];
Part[1][0]=0;
break;
}
stepb10();
}
else
{
if(station1!=2&&station2!=2)
switch (station1)
{
case 0: stepa00(); break;
case 1: stepa01(); break;
case 10: stepa10(); break;
case 11: stepa11(); break;
case 12: stepa12(); break;
case 20: stepa20(); break;
case 21: stepa21(); break;
case 22: stepa22(); break;
}
else if (station1==2) /*0在c处*/
{
if(station2==1)
{
Part[0][2]=Part[1][2];
Part[1][2]=0;
stepa12();
}
else
{
Part[0][2]=Part[0][1];
Part[0][1]=0;
stepa01();
}
}
else
{
switch(station1)
{
case 20: Part[2][0]=Part[2][1];
case 21: Part[2][1]=Part[2][2];
case 22: Part[2][2]=Part[1][2];
case 01: Part[0][1]=Part[0][0];
case 00: Part[0][0]=Part[1][0];
case 10: Part[1][0]=Part[1][1];
case 11: Part[1][1]=Part[1][2];
Part[1][2]=0;
break;
}
Part[0][2]=Part[0][1];
Part[1][2]=1;
Part[0][1]=0;
stepa01();
}
}
}
void stepa01()
{
Part[0][1]=Part[0][0];
Part[0][0]=0;
stepa00();
}
void stepa00()
{
Part[0][0]=Part[1][0];
Part[1][0]=0;
stepa10;
}
void stepa10()
{
if(Part[0][0]==1)
stepb10();
else
{
Part[1][0]=Part[2][0];
Part[2][0]=0;
step20();
}
}
void stepa20()
{
Part[2][0]=Part[2][1];
Part[2][1]=0;
stepa21();
}
void stepa21()
{
Part[2][1]=Part[2][2];
Part[2][2]=0;
stepa22();
}
void stepa22()
{
Part[2][2]=Part[1][2];
Part[1][2]=0;
stepa12();
}
void stepa12()
{
Part[1][2]=Part[1][1];
Part[1][1]=0;
stepa01();
}
void stepa11()
{
Part[1][1]=Part[0][1];
Part[0][1]=0;
stepa01();
}
void stepb10()
{
Part[1][0]=Part[2][0];
Part[2][0]=Part[2][1];
Part[2][1]=Part[2][2];
Part[2][2]=Part[1][2];
Part[1][2]=Part[0][2];
Part[0][2]=Part[0][1];
Part[0][1]=Part[1][1];
Part[1][1]=0;
stepb11();
}
void stepb11()
{
if (Part[0][1]==2)
if (Part[0][3]==3)
stepe10();
else stepc11();
else
{
Part[1][1]=Part[1][0];
Part[1][0]=0;
stepb10();
}
}
void stepc11()
{
Part[1][1]=Part[1][0];
Part[1][0]=0;
stepc10();
}
void stepc10()
{
if (Part[1][1]==3)
stepd10();
else
{
Part[1][0]=Part[2][0];
Part[2][0]=Part[2][1];
Part[2][1]=Part[2][1];
Part[2][2]=Part[1][2];
Part[1][2]=Part[1][1];
stepc11();
}
}
void stepd10()
{
Part[1][0]=Part[0][0];
Part[0][0]=Part[0][1];
Part[0][1]=Part[1][1];
Part[1][1]=Part[1][2];
Part[1][2]=Part[0][2];
Part[0][2]=Part[0][1];
Part[0][1]=Part[0][0];
Part[0][0]=Part[1][0];
Part[1][0]=0;
stepe10();
}
void stepe10()
{
if (Part[1][2]==4)
if (Part[2][2]==5)
steph11();
else stepf10();
else
{
Part[1][0]=Part[2][0];
Part[2][0]=Part[2][1];
Part[2][1]=Part[2][2];
Part[2][2]=Part[1][2];
Part[1][2]=Part[1][1];
Part[1][1]=0;
stepe11();
}
}
void stepe11()
{
if (Part[1][2]==4)
if (Part[2][2]==5)
steph11();
else stepf10();
else
{
Part[1][1]=Part[1][0];
stepe10();
}
}
void stepf11()
{
Part[1][1]=Part[1][0];
Part[1][0]=0;
if (Part[1][1]==5)
stepg10();
else
{
Part[1][0]=Part[2][0];
Part[2][0]=Part[2][1];
Part[2][1]=Part[1][1];
stepf11();
}
}
void stepg10()
{
Part[1][0]=Part[0][0];
Part[0][0]=Part[0][1];
Part[0][1]=Part[0][2];
Part[0][2]=Part[1][2];
Part[1][2]=Part[1][1];
Part[1][1]=Part[2][1];
Part[2][1]=Part[2][2];
Part[2][2]=Part[1][2];
Part[1][2]=Part[0][2];
Part[0][2]=Part[0][1];
Part[0][1]=Part[0][0];
Part[0][0]=Part[1][0];
Part[1][0]=0;
steph10();
}
void steph10()
{
Part[1][0]=Part[2][0];
Part[2][0]=Part[2][1];
Part[2][1]=Part[1][1];
Part[1][1]=0;
steph11();
}
void steph11()
{
if(Part[2][1]==6)
if(Part[2][0]==7&&Part[10]==8)
printf("Find Successfully!!!")
else
printf("Find Faild!!!")
else
{
Part[1][1]=Part[1][0];
Part[1][0]=Part[2][0];
Part[2][0]=Part[2][1];
Part[2][1]=Part[1][1];
Part[1][1]=0;
steph11();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -