使用其他行和列打印多维数组

时间:2015-12-23 14:43:52

标签: c arrays multidimensional-array

我有一个存储一些数据的多维数组,我想以矩阵形式打印它(到目前为止还没有问题),我想添加几个列和行以使其可读。像这样:

ionic start cutePuppyPics1 --v1

("内部广场"是我实际的2d阵列)

我的问题是,最好的方法是什么?

我目前的代码如下:

3 |

2 |

1 |
   _  _  _
   1  2  3

它工作正常,但感觉相当混乱。此外,如果我将数组的大小更改为超过10行/列,则数字不合适。 有没有办法在不改变原始数组的情况下正确格式化这个数组(我传入函数的那个​​数组)?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以通过在printf格式字符串上指定宽度说明符来控制图形的标签宽度(右侧和底部的数字)。这样,所有标签的尺寸都相同。您还可以指定一个类似“--------------”的字符串(使其足够长以打印最长的条)并打印出由宽度说明符限制的数字。

示例:

printf("%*s ", length, "----------------------------------------");

答案 1 :(得分:0)

使用格式说明符转义序列将文本放置在需要它出现的位置。例如这段代码:(来自关于printf和格式的教程)

#include<stdio.h>

main()
{
    int a,b;
    float c,d;

    a = 15;
    b = a / 2;
    printf("%d\n",b);
    printf("%3d\n",b);
    printf("%03d\n",b);

    c = 15.3;
    d = c / 3;
    printf("%3.2f\n",d);
}

生成此输出:

7
   7
007
5.10

您特别感兴趣,因为您使用的是整数,请注意可以与&#34;%d&#34;一起使用的修饰符。格式说明符部分中的说明符:

转义序列:

\n (newline)
\t (tab)
\v (vertical tab)
\f (new page)
\b (backspace)
\r (carriage return)
\n (newline)

示例格式说明符:

%d (print as a decimal integer)
%6d (print as a decimal integer with a width of at least 6 wide)    
%06d (same as previous, but buffered with zeros) (added)
%f (print as a floating point)
%4f (print as a floating point with a width of at least 4 wide)
%.4f (print as a floating point with a precision of four characters after the decimal point)
%3.2f (print as a floating point at least 3 wide and a precision of 2)

<强> There is more here