我有以下代码块。最后一行用于生成用户输入的X
,Y
和P
值的值。但是它只返回
(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);
答案 0 :(得分:4)
假设X
,Y
和P
属于double
或float
类型(输入部分,{{1} }),您需要使用scanf()
或%f
格式说明符(根据需要)打印(或扫描)值。
%lf
或float
,您需要使用double
%f
,请使用float
,要进行双倍扫描,请使用%f
。对特定格式说明符使用错误类型的参数是undefined behaviour。 %lf
需要%d
个参数。因此,在您的情况下,对int
或%d
类型的参数使用float
是UB。