1. 程式人生 > >C語言經典演算法100例-009-輸出國際象棋棋盤

C語言經典演算法100例-009-輸出國際象棋棋盤

題目如下:

輸出國際象棋棋盤:8*8黑白格相間。

1.分析:雙重迴圈,按條件選擇輸出黑或者白。但這個條件怎麼確定呢,可以看到,奇數列中所有奇數行為白色,偶數列中所有偶數行為白色,然而我們在程式中並不會根據每行的奇偶再去判斷列的奇偶,而巧妙的將條件轉化為:當行數與列數的和為偶數時,輸出白色。

2.程式如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{

    int i,j;
    for(i=0;i<8;i++)
    {
        for(j=0;j<8;j++)
        if((i+j)%2==0)
        printf("%c%c",219,219);
        else
        printf("  ");
        printf("\n");
    }
    return 0;
}

程式執行結果如下:

奇怪的是,明明應該輸出兩個白色字元,為什麼只輸出了一個呢?而printf("%c%c%c",219,219,219);輸出的確是兩個白色字元。原因何在啊?

2014-2-28:今天又在另一臺機器上重寫了這個程式,發現這時就正常了,而且219顯示的不再是中間有問號的白色塊,而是純白色塊。