Online Compiler C

#include<stdio.h> int main() { int x1, y1, x2, y2; int res; scanf("%d%d%d%d",&x1,&x2,&y1,&y2); res=(x2-x1)² + (y2-y1)²; printf("%d%d%d%d",x1,x2,y1,y2); return 0; }
这段代码试图计算两点之间的距离平方,但存在几个问题。

首先,代码中使用了 `(x2-x1)²` 这样的写法,这在C语言中是不合法的。C语言没有平方运算符,你需要用乘法表达式来表示平方,比如 `(x2-x1)*(x2-x1)`。

其次,`scanf` 的格式字符串是 `"%d%d%d%d"`,但后面变量的顺序是 `&x1, &x2, &y1, &y2`,这会导致输入的数据被错误地赋值。通常应该按照坐标顺序 `x1, y1, x2, y2` 来读取。

最后,`printf` 输出了四个整数,但题目可能期望输出计算结果 `res`,而不是原始坐标。

- 检查 `scanf` 中变量地址的顺序是否与输入数据的逻辑顺序一致。
- 思考如何用C语言正确表达平方运算,而不是直接写一个上标2。