gpt4 book ai didi

c - 自动调整显示类型

转载 作者:行者123 更新时间:2023-12-01 23:55:09 26 4
gpt4 key购买 nike

我正在研究 "2048"游戏项目。

显示矩阵时,有零点如下图所示: enter image description here

我想去掉表中的零,只显示非零整数。所以我将以下代码添加到我现有的“PrintMat”函数中:

void PrintMat(int a[4][4])
{
int b[4][4];
int i, j;

for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
if (a[i][j] == 0)
{
b[i][j] = ' ';
}
else
{
b[i][j] = a[i][j];
}
}
}
printf("+--------------+--------------+--------------+--------------+\n");
printf("| | | | |\n");
printf("| %5d | %5d | %5d | %5d |\n", b[0][0], b[0][1], b[0][2], b[0][3]);
printf("| | | | |\n");
printf("+--------------+--------------+--------------+--------------+\n");
printf("| | | | |\n");
printf("| %5d | %5d | %5d | %5d |\n", b[1][0], b[1][1], b[1][2], b[1][3]);
printf("| | | | |\n");
printf("+--------------+--------------+--------------+--------------+\n");
printf("| | | | |\n");
printf("| %5d | %5d | %5d | %5d |\n", b[2][0], b[2][1], b[2][2], b[2][3]);
printf("| | | | |\n");
printf("+--------------+--------------+--------------+--------------+\n");
printf("| | | | |\n");
printf("| %5d | %5d | %5d | %5d |\n", b[3][0], b[3][1], b[3][2], b[3][3]);
printf("| | | | |\n");
printf("+--------------+--------------+--------------+--------------+\n");
}

输出如下图所示: enter image description here

我知道它有什么问题(我正在使用 int 类型来显示字符)。问题是:我该如何解决?我怎样才能去掉零?

感谢您的宝贵时间!

最佳答案

使用 %d 说明符不能打印空格。如果数组包含一个带有空格值的整数,您将必须使用 %c 说明符和 if 语句。

您的 printf 语句必须分成更短的语句。每个数组元素一个,并将它们放入一个 for 循环中。

关于c - 自动调整显示类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com