Матрица структуры C - PullRequest
0 голосов
/ 19 марта 2019

Итак, у меня есть этот код, где я пытаюсь определить динамическую матрицу с размером 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 Ответ

2 голосов
/ 19 марта 2019

Просто используйте %e или %g, чтобы отобразить вывод.Если вы используете %f, вы говорите компилятору напечатать число в стандартном формате, это будет 0.0000000000667408, но, поскольку% f отформатирован по умолчанию с шестью десятичными шифрами, компилятор округляет его до 0.000000.

...