HDU - 2001 计算两点间的距离

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42410605/article/details/102745851

OJ地址:https://vjudge.net/problem/HDU-2001

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

Input

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

Output

对于每组输入数据,输出一行,结果保留两位小数。

Sample Input

0 0 0 1
0 1 1 0

Sample Output

1.00
1.41

 

程序代码:

运行正确,代码提交报错:

结构体:

#include<cstdio>
#include<cmath>
struct lcc{
	int x;
	int y;
}a,b; 
int main(){
	while(scanf("%d%d%d%d",&a.x,&a.y,&b.x,&b.y)!=EOF){
		double dis = sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
		printf("%.2f\n",dis);
	}
	return 0;
} 

数组:

#include<cstdio>
#include<cmath>
int main(){
	int a[4];
	while(scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3])!=EOF){
		double dis = sqrt(pow(a[0]-a[2],2)+pow(a[1]-a[3],2));
		printf("%.2f\n",dis);
	}
	return 0;
} 

正确:

结构体:

#include<cstdio>
#include<cmath>
struct lcc{
	double x;
	double y;
}a,b; 
int main(){
	while(scanf("%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y)!=EOF){
		double dis = sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
		printf("%.2f\n",dis);
	}
	return 0;
} 

数组: 

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std; 
int main(){
	double a[4];
	while(cin>>a[0]>>a[1]>>a[2]>>a[3]){
		double dis = sqrt((a[0]-a[2])*(a[0]-a[2])+(a[1]-a[3])*(a[1]-a[3]));
		printf("%.2f\n",dis);
	}
	return 0;
} 

注意:

在本题中,需要注意数据的类型,题中描述要求输入的数为实数,便不能使用整数类型,而应该使用范围更广的双精度浮点数(double),向下兼容整型。更多的数据类型请参考:C语言变量类型及其表示范围

运行结果:

猜你喜欢

转载自blog.csdn.net/qq_42410605/article/details/102745851
今日推荐