技术标签: uva
要点:
1.scanf(” %c”,&c),(注意前面的空格)可以跳过换行符等
第一次照网上的代码打的如下,虽然简化了代码,要注意行和列
#include<stdio.h>
#include<string.h>
char map[5][5];
const int y[] = { 0,0,1,-1 };
const int x[] = { -1,1,0,0 };
int tra[110]; //移动行所在的数组
bool legal(int pos)
{
return 0 <= pos&&pos < 5; //判断是否越界
}
void pmap()
{
for (int row = 0; row < 5; row++)
{
printf("%c", map[row][0]);
for (int col = 1; col < 5; col++)
printf(" %c", map[row][col]); //分开输出,确保每个间隔一个空格
printf("\n");
}
}
int main()
{
tra['A'] = 0;
tra['B'] = 1;
tra['R'] = 2;
tra['L'] = 3;
bool first = true; //使第一个矩阵不空行,从第二个矩阵开始空行
int n = 1;
int bx, by;
while (gets(map[0])) //先输入第一行判断是否为Z
{ //gets不符合C11标准
if (map[0][0] == 'Z')
break;
for (int row = 1; row < 5; row++)
gets(map[row]);
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
if (map[i][j] == ' ')
{
bx = i; //x对应的是列,y对应行
by = j;
}
bool ok = true;
char c;
while (scanf(" %c", &c), c != '0') //%c前空一格可跳过换行符,使移动行可以多行输入
{
if (!ok)
continue;
int nx = bx + x[tra[c]], ny = by + y[tra[c]];
if (!legal(nx)||!legal(ny))
{
ok = false;
continue;
}
map[bx][by] = map[nx][ny];
map[nx][ny] = ' ';
bx = nx; by = ny;
}
getchar(); //最后用getchar吃掉一个换行符
if (first)
first = false;
else
printf("\n");
printf("Puzzle #%d:\n", n++);
if (ok)
pmap();
else
printf("This puzzle has no final configuration.\n");
}
return 0;
}
第二次尝试用简单的办法,自己敲得的代码如下,虽然麻烦但好在行列变换易于理解
#include<stdio.h>
char map[5][5];
int bx,by,nx,ny;
bool legal(int pos)
{
return 0<=pos&&pos<5;
}
void pmap()
{
for(int row=0;row<5;row++)
{
printf("%c",map[row][0]);
for(int col=1;col<5;col++)
printf(" %c",map[row][col]);
printf("\n");
}
}
void swap(int bx,int by,int nx,int ny)
{
map[bx][by]=map[nx][ny];
map[nx][ny]=' ';
}//bx,by不能在函数中赋值,要用指针
int main()
{
bool first=true;
int n=1;
while(gets(map[0]))
{
if(map[0][0]=='Z')
break;
for(int row=1;row<5;row++)
gets(map[row]);
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
if(map[i][j]==' ')
{
bx=i;
by=j;
}
bool ok=true;
char c;
while(scanf(" %c",&c),c!='0')
{
if(!ok)
continue;
if(c=='A')
{
nx=bx-1;ny=by;
if(!legal(nx)||!legal(ny))
{
ok=false;
continue;
}
swap(bx,by,nx,ny);
bx=nx;by=ny;
}
if(c=='B')
{
nx=bx+1;ny=by;
if(!legal(nx)||!legal(ny))
{
ok=false;
continue;
}
swap(bx,by,nx,ny);
bx=nx;by=ny;
}
if(c=='L')
{
nx=bx;ny=by-1;
if(!legal(nx)||!legal(ny))
{
ok=false;
continue;
}
swap(bx,by,nx,ny);
bx=nx;by=ny;
}
if(c=='R')
{
nx=bx;ny=by+1;
if(!legal(nx)||!legal(ny))
{
ok=false;
continue;
}
swap(bx,by,nx,ny);
bx=nx;by=ny;
}
}
getchar();
if(first)
first=false;
else
printf("\n");
printf("Puzzle #%d:\n", n++);
if (ok)
pmap();
else
printf("This puzzle has no final configuration.\n");
}
return 0;
}
转载自解决mybatis generator无法覆盖XML今天发现mybatis generator maven plugin在重复生成的时候xml文件只会merge,不会覆盖。明明在pom.xml中配置了如下:<configuration> <configurationFile>src/main/resources/mybatis/generat...
一、实验目标 1、学会全分布集群模式安装hadoop软件 2、学会安装hadoop软件过程中的各种跳坑姿势二、实验环境 三台机器的网络主机配置如下:192.168.10.166 master192.168.10.167 slave01192.168.10.168 slave02再次梳理一下安装前置条件: 1、安装三台centos7的服
1 dongman =["huoying","sishen","si wang bi ji","pan ni de lu lu xiu"];2 print(dongman[0:2])3 print(dongman[1:4])4 print(dongman[:3])#from the first one5 print(dongman[2:])# from third number...
1、理解:由于DR模型director只负责分发请求,而不连入外网,外网由前段路由接入,所以前段路由、director和realserver都通过交换机链接,所以在集群内部通过MAC地址进行通信。由于Direstor双IP:VIP|别名DIP,RS双IP:RIP|别名VIP,因此在ARP广播时要限制网卡ARP响应功能,比如路由器要把保温送到VIP,做ARP广播时,只能是Director回应,而
最近由于项目需要使用到了MCP3424,这款芯片,概述如下: MCP3422、 MCP3423 和 MCP3424 器件( MCP3422/3/4)为 Microchip MCP342X 系列的低噪声和高精度 18 位 A/D( delta-sigma analog-to-digital)转换器。这些器件可将模拟输入信号转换成分辨率高达18 位的数字代码。片内 2.048V ...
平年,闰年的写法中国有两种年,一个是平年一个是闰年,但是要是用java写出也不难吧!下面开看代码!!算了先看看思路吧要求:Java实现判断闰年平年,并输出某月天数思路:闰年的判断条件是:能被4整除但不被100整除能被400整除然后判断天数,天数31天,30天都会吧我们要知道,闰年2月有29天平年2月有28天。好了我们来写代码import java.util.Scanner;public class Practice3 { public static void main(
习题8-10 输出学生成绩(20 分)本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例...
在历史的长河中,出现过许许多多惊才绝艳的人,他们都有着不同寻常的经历和成就。尼古拉特斯拉、达芬奇、爱因斯坦这个位是世界公认三大天才,他们都有着超越寻常人的成就。他们的智商根本就不是普通人能比得上的,下面为大家简单介绍一下他们的成就。一、尼古拉特斯拉尼古拉特斯拉作为一个高智商的科学家,他一生有过许许多多的发明。特别是他主持设计了现代交流电系统,为电力的发展做出了巨大的贡献,他在电磁场领域有着多项革命...
题目: 排座椅上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 DD 对同学上课时会交头接耳。同学们在教室中坐成了 M 行 N 列,坐在第 ii 行第 j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,LL 条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交
Murphy_JQueryMobile的changePage()方法跳转页面$(function(){ $.mobile.changePage('about.html',{ transition:'slideup' });});跳转页面