在C中的struct中存储浮点数

时间:2017-09-13 06:09:52

标签: c printf

我创建了一个struct变量。一个例子是:

    struct numbers
    {
        float start;
        float end;
        int middle;
    }values;

    int main()
    {
        scanf("%f %f %d", &values.start, &values.end, &values.middle);
        printf("%f %f %d, &values.start, &values.end, &values.middle);
    } 

当我尝试通过用户输入将值读入这些变量时,例如" 0 5.8 3"。当我尝试打印时,它看起来像这样

0.000000 0.0000000 -26148776(每次运行程序时最后一个数字都会更改,其余的数字保持为0)

如何解决此问题?

提前致谢!

1 个答案:

答案 0 :(得分:2)

scanf family函数需要指针,因此它知道存储结果的位置。

printf family函数打印 ,因此不需要指针。

如果printf格式规范与参数不匹配,则会导致未定义的行为

因此,简单的解决方案是不要在&调用中使用地址运算符printf作为参数。