#include <stdio.h>
#include<math.h>
int main(int argc, char *argv[])
{
double x1,y1,x2,y2 ,s;
scanf("%lf%lf%lf%lf\n",&x1,&y1,&x2,&y2);
s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2lf\n",s) ;
return 0;
}
与
#include <stdio.h>
#include<math.h>
int main(int argc, char *argv[])
{
double x1,y1,x2,y2 ,s;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2lf\n",s) ;
return 0;
}
为什么第二个可以正常运行,而第一个不行。
输入的是 100 99 0 0就有问题了
那为什么有些scanf("…\n",…)要输入n个,然后事实输入n个再加\n也是行得通的
追答这个没遇到过。以你自己的测试环境为准。我是在VC2005测试的,上面的解释也符合测试结果。如果环境不一样,那么得到不同的结果也是说得过去的。这种事情没必要这么纠结。
我的环境中,以你说的输入n个数再输入\n,不能得到预期结果。