C語言經典演算法100例-009-輸出國際象棋棋盤
阿新 • • 發佈:2019-01-24
題目如下:
輸出國際象棋棋盤: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顯示的不再是中間有問號的白色塊,而是純白色塊。