#include <stdio.h>
#include <math.h>
int main() {
int x1, y1, x2, y2, a, b;
float d;
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
a = x1 - x2;
b = y1 - y2;
d = sqrt( a * a + b * b);
printf("%.2f\n", d);
return 0;
}
这段代码的功能是:从键盘输入两个点的坐标 (x1,y1) 和 (x2,y2),然后计算并输出它们之间的欧几里得距离,结果保留两位小数。
- 变量 a 和 b 被定义为 int 类型,但计算平方和时,a * a + b * b 的结果可能超出 int 范围(例如坐标值较大时),导致溢出。可以考虑将 a 和 b 改为 float 或 double 类型,或者直接在 sqrt 中做类型转换。
- 使用 sqrt 函数需要链接数学库,编译时通常要加 -lm 选项,否则可能链接失败。