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

#include <stdio.h> #include <math.h> int main() { int a,b,c,d; float M; scanf("%d%d%d%d",&a,&b,&c,&d,&M); M=sqrt((a-c)*(a-c)+(b-d)*(b-d)) printf("%.2f",M); return 0; }
这段代码试图计算二维平面上两个点 (a,b) 和 (c,d) 之间的距离,并输出结果。代码中有一个明显的语法错误和一处逻辑问题。

- 第7行的 `scanf` 中多了一个参数 `&M`,但 `scanf` 的格式字符串只指定了4个整数,多出的参数会导致未定义行为。
- 第8行末尾缺少分号,导致编译错误。

- 检查 `scanf` 的格式字符串和参数数量是否匹配,`M` 不需要从输入读取,它应该由计算得到。
- 确保每条语句末尾都有分号,包括赋值语句。