在线编译器 C

#include <stdio.h> int main() { int x1,x2,y1,y2; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); printf("%d",(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); return 0; }
这段代码计算的是两个点之间距离的平方,而不是距离本身。它读取四个整数坐标,然后输出 (x2-x1)² + (y2-y1)² 的结果。

- 题目要求计算的是两点之间的欧几里得距离,即 sqrt((x2-x1)² + (y2-y1)²),而你的代码只计算了平方和,缺少开平方的步骤。
- 注意 scanf 中格式字符串 "%d%d%d%d" 与变量顺序的对应关系:你写的是 x1,y1,x2,y2,但输入顺序是 x1,x2,y1,y2,这会导致坐标配对错误。