Онлайн компилятор C

#include <stdio.h> int main() { int x1, y1, x2, y2, a, b, distance; scanf("%d %d %d %d", &x1, &y1, &x2, &y2); a = x1 - x2; b = y1 - y2; distance = sqrt( a * a + b * b); printf("%d\n", distance); return 0; }
这段代码试图计算两个点 (x1,y1) 和 (x2,y2) 之间的欧几里得距离,并输出整数结果。它读取四个整数坐标,计算坐标差,然后用平方和开平方根。

- 你使用了 `sqrt` 函数,但缺少 `#include <math.h>` 头文件,这会导致编译错误。需要包含数学库头文件才能使用 `sqrt`。
- `sqrt` 返回 `double` 类型,但你直接赋值给 `int` 类型的 `distance`,这会丢失小数部分。如果希望得到精确的浮点数结果,应该将 `distance` 声明为 `double`,并用 `%lf` 输出。