这题是POJ-2996的逆过程。给出棋盘描述,要求打印出棋盘。
具体的描述和棋盘格式见POJ-2996。
这个比2996简单。也是直接模拟。
开一个二维数组存储8*8棋盘,读入一行后按","拆分,判断是3位还是2位,三位的话按第二三位定位点并存储第一位字符(注意根据黑白区分大小写),二位的话存储P。
最后按指定格式输出即可。
Problem Status: AC。时间0ms,内存388k
#include#include void output(char a[8][8]) { int i,j; printf("+---+---+---+---+---+---+---+---+n"); for(i=0;i<8;i++) { printf("|"); for(j=0;j<8;j++) { if(a[i][j]==' ') if((i+j)%2==0) printf("...|"); else printf("::: |"); else if((i+j)%2==0) printf(".%c.|",a[i][j]); else printf(":%c: |",a[i][j]); } printf("n+---+---+---+---+---+---+---+---+n"); } } int main() { char t[60]; char a[8][8]; int i,j; for(i=0;i<64;i++) a[i/8][i%8]=' '; scanf("%s",t); scanf("%s",t); i=0; j=0; while(i