如何为矩阵(matrix)设置输出间距?附打印代码求助
如何让矩阵输出更美观?
嗨,我来帮你搞定这个矩阵输出的美观问题~你的代码现在把数字都挤在一起了,确实看着不太舒服,只需要调整printf的格式控制符就能轻松解决,给你几个实用的方案:
方案1:直接添加空格(简单清爽)
如果你的矩阵元素都是0-9的单个数字,直接在输出格式里加个空格就行,修改后的代码如下:
void print_graph(void) { int i, j; for (i = 0; i < 20; i++) { for (j = 0; j < 20; j++) { printf("%d ", G[i][j]); // 每个数字后面加一个空格 } printf("\n"); } }
这样每个元素之间都有一个空格,行列瞬间就清晰了。
方案2:固定宽度输出(对齐更严谨)
如果你的矩阵里可能出现两位数字(比如大于9的数),上面的方法会导致列对齐歪掉,这时候用固定宽度格式符就很靠谱。比如用%2d让每个元素占2个字符宽度,数字默认右对齐,即使是一位数,前面也会自动补空格保证对齐:
void print_graph(void) { int i, j; for (i = 0; i < 20; i++) { for (j = 0; j < 20; j++) { printf("%2d ", G[i][j]); // 固定2位宽度,加空格分隔 } printf("\n"); } }
要是你喜欢数字左对齐,把格式符改成%-2d就行,空格会补在数字右边,同样整齐。
方案3:用制表符分隔(大矩阵友好)
如果你的20x20矩阵看着还是挤,可以试试用制表符\t来分隔元素,间距更大,阅读起来更轻松:
void print_graph(void) { int i, j; for (i = 0; i < 20; i++) { for (j = 0; j < 20; j++) { printf("%d\t", G[i][j]); // 制表符分隔每个元素 } printf("\n"); } }
制表符的宽度一般是8个字符,不同终端可能略有差异,但整体对齐效果还是很稳定的。
你可以根据自己的矩阵元素情况选最合适的方法,试一下就能看到效果啦~
内容的提问来源于stack exchange,提问作者mugglepot
相关产品推荐
相关产品推荐

