结构C的矩阵

时间:2019-03-19 09:26:04

标签: c arrays matrix struct

所以我有这段代码试图定义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);
}

1 个答案:

答案 0 :(得分:2)

只需使用%e%g来显示输出。如果使用%f,则告诉编译器以标准格式打印数字,即0.0000000000667408,但由于%f的默认格式为6位十进制密码,因此编译器会将其四舍五入为{{ 1}}。