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

来源:互联网 发布:php 序列化注入 编辑:程序博客网 时间:2024/05/04 06:27

原题回顾

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。

0 0
原创粉丝点击