0
点赞
收藏
分享

微信扫一扫

C语言实例之8输出中国象棋棋盘

1. 题目

输出中国象棋棋盘。

2.分析

首先需要知道中国象棋棋盘布局。

|-------------------|
| 車馬象士将士象馬車 |
| 炮 炮 |
| 卒 卒 卒 卒 卒 |
|-------------------|
|-------------------|
| 兵 兵 兵 兵 兵 |
| 炮 炮 |
| 車馬象士帥士象馬車 |
|-------------------|

根据上述布局依次输出。

3. 实例代码

#include <stdio.h>
#include <windows.h>

int main() {
// 防止中文乱码
SetConsoleOutputCP(CP_UTF8);

const char* arr[8];
// 使用动态内存分配来初始化每个元素指向的字符串内容
arr[0] = (const char*)malloc(sizeof(char) * 24);
strcpy((char*)arr[0], 車馬象士将士象馬車 );

arr[1] = (const char*)malloc(sizeof(char) * 24);
strcpy((char*)arr[1], 炮 炮 );

arr[2] = (const char*)malloc(sizeof(char) * 36);
strcpy((char*)arr[2], 卒 卒 卒 卒 卒 );

arr[3] = (const char*)malloc(sizeof(char) * 36);
strcpy((char*)arr[3], -------------------);

arr[4] = (const char*)malloc(sizeof(char) * 36);
strcpy((char*)arr[4], -------------------);

arr[5] = (const char*)malloc(sizeof(char) * 36);
strcpy((char*)arr[5], 兵 兵 兵 兵 兵 );

arr[6] = (const char*)malloc(sizeof(char) * 36);
strcpy((char*)arr[6], 炮 炮 );

arr[7] = (const char*)malloc(sizeof(char) * 36);
strcpy((char*)arr[7], 車馬象士帥士象馬車 );

int nRow = 0;
printf(中国象棋棋盘:\n);
while(nRow < 8) {
printf(arr[nRow]);
nRow++;
// 每一行后换行
printf(\n);
}

// 释放动态分配的内存
for (int i = 0; i < 8; i++) {
if (arr[i] && ((char*)arr[i])!= NULL) {
free((void*)arr[i]);
}
}
return 0;
}

4. 输出

image.png

举报

相关推荐

0 条评论