在线编译器 C

#include <stdio.h> int main() { int x1,y1,x2,y2; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); float distance; distance=sqrt(pow(x2-x1,2)+pow(y2-y1,2)); printf("%.2f",distance); return 0; }
这段代码试图计算两个点 (x1,y1) 和 (x2,y2) 之间的欧几里得距离,并保留两位小数输出。但代码中存在两个问题。

- 你使用了 `sqrt` 和 `pow` 函数,但没有包含对应的头文件 `<math.h>`,这会导致编译错误或未定义行为。
- `pow` 函数返回的是 `double` 类型,而 `sqrt` 也接受 `double`,但你的变量 `distance` 是 `float`,虽然可以隐式转换,但建议保持类型一致或使用 `double` 提高精度。