马踏棋盘问题的程序c语言,马踏棋盘问题

2023-11-09 05:10

本文主要是介绍马踏棋盘问题的程序c语言,马踏棋盘问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

已结贴√

问题点数:15 回复次数:6

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

马踏棋盘问题

只能执行到第二步,找不出结果,求各位帮忙

#include

#include

#include

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

typedef struct Point{

int x;

int y;

int e;

}Point;

typedef struct {

Point *base;

Point *top;

int stacksize;

}SqStack;

int InitStack(SqStack *S)

{

(*S).base =(Point *)malloc(STACK_INIT_SIZE*sizeof(Point));

if(!(*S).base)exit(1);

(*S).top = (*S).base;

(*S).stacksize = STACK_INIT_SIZE;

return 1;

}

int StackEmpty(SqStack *S)

{

if((*S).top==(*S).base)

return 1;

else

return 0;

}

int Push(SqStack *S,Point e)

{

if((*S).top - (*S).base >= (*S).stacksize)

{

(*S).base =(Point *)realloc((*S).base,((*S).stacksize+STACKINCREMENT) * sizeof(Point));

if(!(*S).base)exit(1);

(*S).top = (*S).base+(*S).stacksize;

(*S).stacksize += STACKINCREMENT;

}

*(*S).top++ = e;

return 1;

}

int Pop(SqStack *S, Point *e)

{

if((*S).top ==(*S).base) return 0;

*e = * --(*S).top;

return 1;

}

int SetTop(SqStack S,Point *e)

{

if(S.top>S.base)

{

*(S.top-1)=*e;

return 1;

}

else

return 0;

}

void main()

{

Point e;

int count=1;

int i,j;

int board[8][8]={{0}};

int x1,y1;

int move1[8]={2,2,1,1,-1,-1,-2,-2,},

move2[8]={1,-1,2,-2,2,-2,1,-1,};

int pic[8][8]; //对应棋盘

SqStack S;

for(i=0;i<8;i++)

for(j=0;j<8;j++)

pic[i][j]=0;

//输入入口点,并让其进栈

printf("输入x1(0-7),y1(0-7):");

scanf("%d%d",&x1,&y1);

e.x=x1;

e.y=y1;

pic[x1][y1]=1;

InitStack(&S);

Push(&S,e);

int k=0;

while(count!=64)

{

if(x1+move1[k]>0&&x1+move1[k]<=8&&y1+move2[k]>0&&y1+move2[k]<=8&&board[x1+move1[k]][y1+move2[k]]==0)

{

pic[x1+move1[k]][y1+move2[k]]=++count;

e.x=x1+move1[k];

e.y=y1+move2[k];

Push(&S,e);

k=0;

}

else

board[x1+move1[k]][y1+move2[k]]=1;

k++;

}

while(!StackEmpty(&S))

{

Pop(&S,&e);

printf("(%d %d)",e.x,e.y);

}

printf("\n");

/* 打印出马走棋盘的路线*/

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

printf("%d\t",pic[i][j]);

printf("\n\n\n");

}

}

搜索更多相关主题的帖子:

return

这篇关于马踏棋盘问题的程序c语言,马踏棋盘问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/374140

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合