HDU 2001 计算两点间的距离

HDU 2001 计算两点间的距离

 

Problem Description
输入两点坐标(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
 
 
AC代码:
#include<stdio.h>
#include<math.h>
int main()
{ float a,b,c,d;
while(scanf("%f %f %f %f",&a,&b,&c,&d)!=EOF)
printf("%.2f\n",sqrt((a-c)*(a-c)+(b-d)*(b-d)));
return 0;
}
 
 
 
 
总结1:
学会利用数学函数,例如本题中用到的“sqrt”,即为数学中的开根号函数,
m=double sqrt(double x);则这个m需定义为double型,若想取整数,可进行强制装换数据类型,即写成(int)m。(本题不需要,只需保证其double型即可);
 
 
总结2:
数据类型的区分,和不同类型数据在输入输出时,格式的区分。
一、整形数据
 
int 基本整型,VC环境下,占4个字节,取值范围 (-214483648~2147483647) 即(-21亿~21亿);
输入格式scanf("%d",&n);输出格式printf("%d",n);
 
long long 双长型,占8个字节,取值范围(-9223372036854775808~92233772036854775807)即(-2的63次方~2的63次方-1);
输入格式scanf("%lld",&n);输出格式printf(“%lld”,n);
 
二、浮点型数据
 
float 单精度浮点型,占4个字节,有效数字6位, 数值范围(绝对值) (0以及1.2*10的-38次方~3.4*10的38次方)
输入格式scanf("%f",&n);输出格式printf(“%f”,n);
 
double 双精度浮点型,占8个字节,有效数字15位, 数值范围(绝对值) (0以及2.3*10的-308次方~1.7*10的308次方)
输入格式scanf("%lf",&n);输出格式printf(“%lf”,n);
 
注: 1、浮点型数据一般用double型,而不用float型;
2、double型在默认情况下,输出小数点后6位,我们通常要减小其小数点后的长度,则可以使用(“%m.nlf”,&a)的形式,其中m,n都为正整数,m表示输出的浮点型的数据占m位,如果实际长度不等于m,则按实际长度输出,n表示输出的小数点位数。SO,m实际上可以不用管,直接用0代替或者不写都可以!
3、在VC中C语言不支持long long int类型,而在Linux下支持。long long int也占有8个字节。
 
 
 
 
 
 
::.--.-.::
:( (    ):::::  东边日出西边雨 
(_,  \ ) ,_)::  道是无晴却有情       |
:::-'--`--:::::::: ~~|     ,       \ _ /
::::::::::::::::::: ,|`-._/|   -==  (_)  ==-
::::::::^^::::::::.' |   /||\      /   \
::::::^^::::::::.'   | ./ ||`\       |
:::::::::::::::/ `-. |/._ ||  \
::::::::::::::|      ||   ||   \
 ~~=~_~^~ =~ \~~~~~~~'~~~~'~~~~/~~`` ~=~^~
~^^~~-=~^~ ^ `--------------'~^~=~^~_~^=~^~
 
 
 
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值