您的位置:首页 > 其它

杭电2001求两点之间的距离

2014-08-13 23:43 204 查看
#include"stdio.h"

#include"math.h"

#define Max 100 

int distance(float x1,float y1,float x2,float y2);

void main()

{

float x1[Max],y1[Max],x2[Max],y2[Max];

double dist[Max];

int n=0,m=0;

printf("输入你要输入的数据组数n=");

scanf("%d",&n);

printf("Input:\n");

for(m=0;m<n;m++)

{

scanf("%f %f %f %f",&x1[m],&y1[m],&x2[m],&y2[m]);

dist[m]=distance(x1[m],y1[m],x2[m],y2[m]);

}

printf("Output:\n");

for(m=0;m<n;m++)

printf("%.2f\n",dist[m]);



int distance(float x1,float y1,float x2,float y2)

{

float tempx=0,tempy=0; 

double dist; 

if(x2>x1)tempx=x2-x1;

else tempx=x1-x2; 

if(y2>y1)tempy=y2-y1;

else tempy=y1-y2; 

dist=sqrt(pow(tempx,2)+pow(tempy,2));

return dist; 



这种做法我也不知道哪里有出错,在vc++6.0下面能够正确运行处结果,但是在杭电oj上则不能通过,提示出错的原因是main的返回值应该是int型,额,现在我也还搞不懂这个,先留在这里吧就

#include <stdio.h>

#include <math.h>

main()

{

  float x1,y1,x2,y2;

  while(scanf("%f %f %f %f",&x1,&y1,&x2,&y2)!=EOF)

  {

   printf("%.2f\n",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));

  }

  return 0;

}

这一种则是被oj认可了的,但是注意输出时加上换行符,否则会给出输出格式错误的提示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杭电