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);