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

#include <stdio.h> #include <math.h> int main() { int x1, y1, x2, y2; scanf("%d %d %d %d", &x1, &y1, &x2, &y2); int dx = x1 - x2; int dy = y1 - y2; double distance = sqrt(dx * dx + dy * dy); printf("%.2f\n", distance); return 0; }
这段代码计算两个点 (x1,y1) 和 (x2,y2) 之间的欧几里得距离,并保留两位小数输出。它使用了数学库中的 sqrt 函数来计算平方根。

- 注意 dx 和 dy 的计算方式:dx = x1 - x2, dy = y1 - y2。虽然平方后结果相同,但通常更习惯用 x2 - x1 和 y2 - y1 来表示两点间的差值,不过这里不影响最终结果。
- 变量 dx 和 dy 是 int 类型,但它们的平方可能超出 int 范围。如果坐标值较大(比如超过 46340),平方后可能溢出,导致结果错误。考虑使用 long long 或 double 类型来存储差值或平方值。