【问题标题】:Matrix of structure C结构 C 的矩阵
【发布时间】:2019-03-19 09:26:03
【问题描述】:

所以我有这段代码,我试图定义一个 n*n 大小的动态矩阵。 事实证明,不是输出打印 G 的值,而是打印 0。知道为什么吗?

#define G 6.67408e-11

typedef struct matrix
{
    double mass;
    double cmx;
    double cmy;

}MATRIX;

MATRIX **mtr;

void main(int argc, char** argv){
    const long n = atoi(argv[1]);

    mtr = (MATRIX**)calloc(n,sizeof(MATRIX*));
    for (int i=0; i<n; ++i)
    {
        mtr[i]=(MATRIX*)calloc(n,sizeof(MATRIX));
    }
    mtr[0][0].cmx=G;
    printf("%f\n", mtr[0][0].cmx);
}

【问题讨论】:

标签: c arrays matrix struct


【解决方案1】:

只需使用%e%g 即可显示输出。如果您使用%f,您是在告诉编译器以标准格式打印数字,即0.0000000000667408,但由于 %f 的默认格式为 6 个十进制密码,编译器会将其四舍五入为 0.000000

【讨论】:

  • "%.16f\n" 如果 OP 对科学记数法有严重过敏,那将是另一种方式。
猜你喜欢
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多