C中有关双浮点数变量赋值的错误 #包括 内部主(空) { double height;//如果写入double height而不是float height,则会发生错误! printf(“高度(英寸):”; 扫描频率(“%f”和高度); printf(“%f英寸=%f厘米\n”,高度,高度*2.54); }

C中有关双浮点数变量赋值的错误 #包括 内部主(空) { double height;//如果写入double height而不是float height,则会发生错误! printf(“高度(英寸):”; 扫描频率(“%f”和高度); printf(“%f英寸=%f厘米\n”,高度,高度*2.54); },c,C,正如您在注释中看到的,如果我写双倍高度而不是浮动高度,就会发生错误!我的代码怎么了 用于scanf的%f格式说明符需要指向浮点的指针,而不是双精度的指针。这一点很重要,因为这两种尺寸不同。传入double的地址将导致填充包含double的部分而非全部字节,从而导致未定义的行为 若要将值读入双精度,请使用%lf #include <stdio.h> int main(void) { double height; //Error happens if I write doubl

正如您在注释中看到的,如果我写双倍高度而不是浮动高度,就会发生错误!我的代码怎么了

用于
scanf
%f
格式说明符需要指向
浮点的指针,而不是
双精度的指针。这一点很重要,因为这两种尺寸不同。传入
double
的地址将导致填充包含
double
的部分而非全部字节,从而导致未定义的行为

若要将值读入双精度
,请使用
%lf

#include <stdio.h>

int main(void)
{
    double height; //Error happens if I write double height instead of float height! 
    printf("Height(inch): ");
    scanf("%f",&height);
    printf("%f inch = %f cm \n",height,height*2.54);
}

您不了解scanf的手册页中的哪些内容?阅读(至少最后一部分)已接受的答案。
double height;
scanf("%lf",&height);