Online Compiler C

#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 选项,否则可能链接失败。