printf 不产生输入值

printf not yielding input values

我有以下代码块。最后一行旨在生成用户输入的 XYP 值。然而它只有 returns

(0,0,0)

而不是用户给定的值。我错过了什么?

printf("What is the robot's initial X position? (cm)\n");
scanf("%f",&X);
printf("What is the robot's initial Y position? (cm)\n");
scanf("%f",&Y);
printf("What is the robot's initial angular position? (degrees)\n");
scanf("%f",&P);
printf("The initial position is (%d, %d, %d)\n", X,Y,P);

假设XYPdoublefloat类型(输入部分 , scanf()),您需要使用 %f%lf 格式说明符(根据需要)打印(或扫描)值。

  • 要打印floatdouble,您需要使用%f
  • 扫描float,使用%f,扫描双倍,使用%lf

对特定格式说明符使用错误类型的参数是undefined behaviour%d 需要一个 int 参数。因此,在您的情况下,将 %d 用于 floatdouble 类型的参数是 UB。