【发布时间】:2011-08-11 18:39:23
【问题描述】:
我有:
void pprint_matrix(matrix *m)
{
int n,k,p;
matrix* row = new_matrix(1,m->j);
for (k = 1; k < (m->i)+1; k++)
{
p = 0;
for (n = (m->j)*k-(m->j); n < (m->j)*k; n++)
{
row->m[p] = m->m[n];
p++;
}
for (n = 0; n < m->j; n++)
{
printf("(%+#3.3g%+#3.3gi) ",row->m[n].re,row->m[n].im);
}
printf("\n");
}
}
正在打印的内容:
(-1.73+0.00i) (+0.866+0.00i) (-0.722+0.00i) (-0.866+0.00i)
(+0.00+0.00i) (-0.707+0.00i) (+0.707+0.00i) (+0.707+0.00i)
(+0.00+0.00i) (+0.00+0.00i) (+0.204+0.00i) (+0.00+0.00i)
另一个打印输出示例:
(-2.24+0.00i) (+2.22e-16+0.00i) (-1.12+0.00i) (-1.79+0.00i)
(+0.00+0.00i) (+1.58+0.00i) (+0.00+0.00i) (+0.632+0.00i)
(+0.00+0.00i) (+5.55e-17+0.00i) (-0.725+0.00i) (-1.04+0.00i)
(+0.00+0.00i) (+2.22e-16+0.00i) (-0.589+0.00i) (-0.816+0.00i)
(+0.00+0.00i) (+2.22e-16+0.00i) (+0.0467+0.00i) (+0.404+0.00i)
我想摆脱那个偏移量。给定前面的代码,我如何强制这种对齐?我列出的功能对这个问题真的不重要。这只是一个关于printf的问题。
为了清楚起见,目标是这样的:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
【问题讨论】:
-
对于这些示例,您希望的输出是什么样的?
-
括号中没有偏移量...
-
“偏移”是什么意思?
-
每个括号都应该触及它下面的括号。应该形成列。