题目描述
要求输出国际象棋棋盘。
程序分析
用i控制行,j控制列,根据 i + j 的和的变化来控制输出黑方格还是白方格。
源代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j;
for (i = 1; i <= 8; i++)
{
for (j = 1; j <= 8; j++)
{
if ((i + j) % 2 != 0)
{
printf("%c%c", 219, 219);
}
else
{
printf(" "); //注意这里是两个空格
}
printf("\n");
}
}
system("pause");
return 0;
}
结果输出的是乱码,一堆中文的“圹”。为什么呢?
主要原因是文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,219的16进制是DB,0xDBDB是“圹”字的内码,所以输出的就是“圹”了。要输出国际象棋棋盘的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。
具体修改控制台的默认代码页的详情请看https://blog.csdn.net/ZD_012/article/details/104658078