104.数字移动

简介: 104.数字移动
#include<stdio.h>
int a[]={0,1,2,5,8,7,6,3};     /*指针数组.依次存入矩阵中构成环的元素下标*/
int b[9];                      /*表示3X3矩阵,b[4]为空格*/
int c[9];                      /*确定1所在的位置后,对环进行调整的指针数组*/
int count=0;                   /*数字移动步数计数器*/
void main()
{
   int i,j,k,t;
   void print();
   clrscr();
   puts("*****************************************************");
   puts("*         This is a program to Move Numbers.        *");
   puts("*****************************************************");
   printf(" >> Please enter original order of digits 1~8: ");
   for(i=0;i<8;i++)
      scanf("%d",&b[a[i]]);
               /*顺序输入矩阵外边的8个数字,矩阵元素的顺序由指针数组的元素a[i]控制*/
   printf("The sorting process is as felow:\n");
   print();
   for(t=-1,j=0;j<8&&t==-1;j++)          /*确定数字1所在的位置*/
      if(b[a[j]]==1) t=j;                 /*t:记录数字1所在的位置*/
   for(j=0;j<8;j++)     /*调整环的指针数组,将数字1所在的位置定为环的首*/
      c[j]=a[(j+t)%8];
   for(i=2;i<9;i++)         /*从2开始依次调整数字的位置*/
                        /*i:正在处理的数字,i对应在环中应当的正确位置就是i-1*/
      for(j=i-1;j<8;j++)     /*从i应处的正确位置开始顺序查找*/
   if(b[c[j]]==i&&j!=i-1)      /*若i不在正确的位置*/
         {
            b[4]=i;          /*将i移到中心的空格中*/
      b[c[j]]=0;print();     /*空出i原来所在的位置,输出*/
            for(k=j;k!=i-1;k--)    /*将空格以前到i的正确位置之间的数字依次向后移动一格*/
            {
         b[c[k]]=b[c[k-1]];    /*数字向后移动*/
         b[c[k-1]]=0;
               print();
            }
      b[c[k]]=i;         /*将中间的数字i移入正确的位置*/
            b[4]=0;            /*空出中间的空格*/
            print();
            break;
         }
   else if(b[c[j]]==i) break;       /*数字i在正确的位置*/
    printf("\n Press any key to quit...");
    getch();
}
void print(void)        /*按格式要求输出矩阵*/
{
   int c;
   printf(" >> Step No.%2d  ",count++);
   for(c=0;c<9;c++)
      if(c%3==2) printf("%2d  ",b[c]);
      else  printf("%2d",b[c]);
   printf("\n");
}
相关文章
|
3月前
|
存储 关系型数据库 MySQL
基于python+vue的商城购物系统
本文介绍了电子商务的发展背景及研究现状,分析了当前电商市场的挑战与机遇,提出了自建电商平台的优势,旨在通过创新设计与技术实现(如Python、Django、B/S架构等),构建一个高效、低成本、用户导向的电商系统,以提升企业竞争力。
|
2天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1006 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1700 9
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
643 152
|
10天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
613 13