Online Compiler C

#include <stdio.h> #include <math.h> int main() { int x1,x2,y1,y2; float len; scanf("%d%d%d%d",&x1,&x2,&y1,&y2); len = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); printf("%.2f\n",len); return 0; }
这段代码试图计算两个点之间的距离,但变量命名和输入顺序有误。代码中变量名x1、x2、y1、y2容易让人误解,实际上你输入的顺序是x1、x2、y1、y2,但通常两点坐标应该是(x1,y1)和(x2,y2)。当前代码将x1和x2当作第一个点的x和第二个点的x,y1和y2当作第一个点的y和第二个点的y,但输入时却是先输入两个x值再输入两个y值,这会导致计算错误。

- 检查变量命名:通常用x1、y1表示第一个点,x2、y2表示第二个点。你的代码中变量名与数学含义不匹配,容易混淆。
- 检查输入顺序:scanf中的格式与变量顺序对应,确保输入时先输入第一个点的x和y,再输入第二个点的x和y,或者调整变量名使其符合逻辑。