http://poj.org/problem?id=2996

又是一个大模拟题,表示做模拟题做的恶心,这个题主要是对数据的处理,从表格中将数据取出来再进行处理即可。

主要注意的点就是:1.KQRBN五个大写字母输出的顺序,且p不输出。

2.输出白色的时候,按列升序排,列相同时按行升序排,黑色的是按列降序排,列相同的时候按行升序排。

3.最后是不用输出逗号的,这个用一个标记变量标记一下就行。

 #include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char cont[] = "KQRBNP";
char a,b,c;
char map[][] ;
int mark=;
void process(char ch,int colour,int &mark);
void print(int colour);
int main()
{
for(int i = ; i <= ; i++)
{
scanf("+---+---+---+---+---+---+---+---+");
getchar();//消除换行符
for(int j = ; j <= ; j++)
{
scanf("|%c%c%c",&a,&b,&c);
map[i][j] = b ;//把每个方块里的内容读到map数组里
}
getchar();//消除每一行最后一个|
getchar();//消除换行符
}
scanf("+---+---+---+---+---+---+---+---+");//输入最后一行
getchar();//消除换行符
print();//1代表输出白色
cout<<endl;
print();//2代表输出黑色
cout<<endl;
return ;
}
void print(int colour)
{
if(colour == )
cout<<"White:"<<' ';
else
cout<<"Black:"<<' ';
int mark = ;
for(int i = ; i < ; i++)
{
process(cont[i],colour,mark);
}
}
void process(char ch,int colour,int &mark)//这里的mark是一定要加地址符的,因为他的值是要改变的
{
//int markk = 1;
char sh = ch ;
if(colour == )
ch += ;
if(colour == )
{
for(int i = ; i <= ; i++)//黑色输出的时候是列降序,列相同时行升序
{
for(int j = ; j <= ; j++)
{
if(map[i][j] == ch)
{
if(mark)
mark = ;//控制逗号的输出
else
printf(",");
if(ch != 'p'&&ch!='P')//p的时候只输出位置
printf("%c",sh);
printf("%c%d",j+'a'-,-i);
}
}
}
} else
{
for(int i = ; i >= ; i--)//白色的输出的时候是列升序,列相同时行升序。
{
for(int j = ; j <= ; j++)
{
if(map[i][j] == ch)
{
if(mark)
mark = ;
else
printf(",");
if(ch != 'P'&&ch!='p')//等于p就不输出
printf("%c",sh);
printf("%c%d",j+'a'-,-i);
}
}
}
}
}

POJ2996Help Me with the Game的更多相关文章

随机推荐

  1. Rhythmbox中文乱码解决办法

    今天在网络上找到了一个比较好的解决Rhythmbox中文乱码的问题的方法 进入你的音乐文件夹执行如下代码: mid3iconv -e GBK *.mp3 如果没有提示多试几次,有可能系统会提示: py ...

  2. 设计main函数退出后继续执行一段代码

    原理: 使用 _onexit() 函数注册一个函数,这个函数会在main函数退出后执行 使用原则: 1.包含在cstdlib中,是c语言中的库函数: 2.需要注册的函数格式为:int类型返回值.无参数 ...

  3. 第一章 C++简介

    第一章  C++简介 1.1  C++特点 C++融合了3种不同的编程方式:C语言代表的过程性语言,C++在C语言基础上添加的类代表的面向对象语言,C++模板支持的泛型编程. 1.2  C语言及其编程 ...

  4. Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...

  5. Mongodb Java Driver 参数配置解析

    要正确使用Mongodb Java Driver,MongoClientOptions参数配置对数据库访问的并发性能影响极大. connectionsPerHost:与目标数据库能够建立的最大conn ...

  6. NodeJs菜鸟初始

    我们先来了解下什么是nodejs 一.nodejs具有事件驱动.异步编程的特点. 事件驱动这个词并不陌生,在某些传统语言的网络编程中,我们会用到回调函数,比如当socket资源达到某种状态时,注册的回 ...

  7. 服务管理,Dll查看

    //枚举系统进程 VOID CManageProcessDlg::ShowProcess() {           m_ListProcess.DeleteAllItems();      HAND ...

  8. delphi图形图像开发相关

    ①delphi的图形处理(doc) http://wenku.baidu.com/view/519df09951e79b89680226ee.html ②delphi的图形图像处理(ppt) http ...

  9. Docs list

    http://www.deansys.com/doc/ldd3/index.html Github中文文档: http://www.worldhello.net/gotgithub/03-projec ...

  10. ApacheBench 使用教程

    ab压力测试 ab是Apache超文本传输协议(HTTP)的性能测试工具.其设计意图是描绘当前所安装的Apache的执行性能. 主要是显示你安装的Apache每秒可以处理多少个请求. 格式: ./ab ...