C - (Printf) 强制显示零

标签 c matrix printf

我有:

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 的问题。

为了清楚起见,目标是这样的:

(  ) (  ) (  )
(  ) (  ) (  )
(  ) (  ) (  )

最佳答案

使用%3.3f代替%3.3g

关于C - (Printf) 强制显示零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031084/

相关文章:

c - 如何根据用户输入生成随机数但不重复且在一定范围内?

c - 具有相同成员类型的 C 结构是否保证在内存中具有相同的布局?

C#:为什么旋转不可逆矩阵并再次返回使其可逆

c - 在 C 中重定向 stdout 时的奇怪行为

mysql - 是否有 MySQL 等同于 sprintf?

iphone - 可以使用什么来避免 msgSend 函数开销?(Obj-c)

c - 如何在C中初始化time_t类型的数组?

bash - 如何使用 printf 获取颜色和宽度格式

javascript - 如何在 Javascript 中创建二维数组

algorithm - 定义一个函数使对称矩阵相等