#include<stdio.h>#include<math.h>void main(){double X1,X2,Y1,Y2;double d;while(scanf("%lf%lf%lf%lf",&X1,&Y1,&X2,&Y2)!=EOF){d=sqrt((double)((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)));printf("%.2lf\n",d);}}
2 回答
湖上湖
TA贡献2003条经验 获得超2个赞
EOF 其实是一个宏,在预编译期间会被编译器用 -1 代替
也就是说,当scanf 的返回值是 -1 时就会跳出循环。
scanf 的返回值是前 N 个成功度取得数据的数量,简单点说就是成功读了多少个数据,不过有区别,如果你第一个输入数据非法的话,就算你后面是合法输入,也会返回 0 。
EOF 是 end of file 的意思,也就是文件尾。如果是读文件的话,读到文件尾就会结束循环。
如果使用键盘输入的话, 输入 Ctrl + z 就可以结束循环(貌似是模拟文件结束符还是什么的,我也不太清楚),不过我所说的是在windows 环境下,如果是其他操作系统就另当别论了。
添加回答
举报
0/150
提交
取消
