在线编译器 C

#include <stdio.h> #include <math.h> int main(void) { int x1,y1,x2,y2; double d; scanf("%d%d%d%d", &x1,&y1,&x2,&y2); d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); printf("%.2f",d); return 0; }
这段代码的功能是:从键盘输入两个点的坐标 (x1,y1) 和 (x2,y2),然后计算并输出这两点之间的欧几里得距离,结果保留两位小数。

- 代码中使用了 `sqrt` 函数,但需要确保链接数学库(编译时加 `-lm` 选项)。
- 变量 `d` 是 `double` 类型,但计算平方时 `(x2-x1)*(x2-x1)` 是整数乘法,结果可能溢出(如果坐标值很大)。可以考虑在乘法前将其中一个操作数转换为 `double` 类型,或者直接使用 `double` 类型的变量进行运算。