您的位置:首页 > 其它

杭电ACM 2001: 计算两点间的距离

2015-04-13 23:20 357 查看

原题回顾

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

这一道考的不是数学题,而是考察的是对格式输出。我用的是C++.先上我的代码,已经AC,然后再分析。

#include <iostream>
#include<math.h>
#include<iomanip>

using namespace std;

int main()
{
float x1,y1,x2,y2,dis;
while(cin>>x1>>y1>>x2>>y2)
{
dis=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
cout << setiosflags(ios::fixed)<<setprecision(2)<<dis<< endl;
}

return 0;
}


这一道题用到了开根号函数sqrt(),所以必须把头文件math.h包含进来,接下来就是c++函数的格式输出问题。下面以及介绍用到的两个控制符:

setprecision(n)含义:

设置实数的精度为n位,在以一般十进制小数形式输出时n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时n为小数位数。

setiosflags(ios::fixed)含义:

设置浮点数以固定的小数位数显示

应该注意的是,这些控制符是在头文件iomanip中定义的,因而头文件中应当包括头文件iomanip。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: