uva 227 puzzle 问题显示re不知道哪里有错误

weixin_44019404 2019-01-02 01:19:30
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
//#define local
char a[100][100];
char move[100];
int x, y;
int count=1;
int main()
{
while (gets_s(a[0], 100))//vs写的所以用的gets_s
{
int n = 0;
int mark = 0;
//printf("Z:%s\n", a[0]);
if (a[0][0] == 'Z') break;
for (int i = 1; i < 5; i++)//读入a
gets_s(a[i], 100);
for (int j = 0; j < 5; j++)
for (int i = 0; i < 5; i++)
if (a[i][j] == ' ')
{
x = i; y = j;
}
while ((move[n++] = getchar()) != 'O');//读入行走的路径
getchar();//把回车给吃掉防止下次
printf("move\n");
n = 0;
while (move[n++] != 'O')//开始判断
{

switch (move[n - 1])
{
case 'A':
{
a[x][y] = a[x - 1][y];
x--;
break;
}
case 'B':
{
a[x][y] = a[x + 1][y];
x++;
break;
}
case 'L':
{
a[x][y] = a[x][y - 1];
y--;
break;
}
case 'R':
{
a[x][y] = a[x][y + 1];
y++;
break;
}
default:break;
}
if (x < 0 || x>4 || y < 0 || y>4)
{
mark = 1;
break;
}
}

a[x][y] = ' ';
printf("Puzzle #%d:\n", count);//输出
if (mark == 0)
{
for (int i = 0; i < 5; i++)
{
{
printf("%c %c %c %c %c\n", a[i][0], a[i][1], a[i][2], a[i][3], a[i][4]);
}
}
}
else
{
printf("This puzzle has no final configuration.\n");
}
//printf("count:%d\n", count);
count++;
printf("\n");
}
return 0;

}
...全文
172 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-01-03
  • 打赏
  • 举报
回复
输入输出格式
边界条件
……
赵4老师 2019-01-03
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
weixin_44019404 2019-01-03
  • 打赏
  • 举报
回复
引用 5 楼 自信男孩 的回复:
[quote=引用 1 楼 @风轻云淡_ 的回复:]
你的
while ((move[n++] = getchar()) != 'O');//读入行走的路径

while (move[n++] != 'O')//开始判断

是大写的o,不是0!!!

楼主应该写的是大写的O,可以看一下这一行,0是怎么写的:
if (x < 0 || x>4 || y < 0 || y>4)
{
mark = 1;
break;
}
[/quote]
对的呢
自信男孩 2019-01-03
  • 打赏
  • 举报
回复
引用 1 楼 @风轻云淡_ 的回复:
你的
while ((move[n++] = getchar()) != 'O');//读入行走的路径

while (move[n++] != 'O')//开始判断

是大写的o,不是0!!!

楼主应该写的是大写的O,可以看一下这一行,0是怎么写的:
if (x < 0 || x>4 || y < 0 || y>4)
{
mark = 1;
break;
}
weixin_44019404 2019-01-02
  • 打赏
  • 举报
回复
我这个就是大写的o呢
@风轻云淡_ 2019-01-02
  • 打赏
  • 举报
回复
你的
while ((move[n++] = getchar()) != 'O');//读入行走的路径

while (move[n++] != 'O')//开始判断

是大写的o,不是0!!!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧