今天,我们继续了解基础的【顺序程序】。
题目描述:已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度。
输入:共两行。第一行是两个实数Xa,Ya,即A的坐标。第二行是两个实数Xb,Yb,即B的坐标。输入中所有实数的绝对值均不超过10000。
输出:一个实数,即线段AB的长度,保留到小数点后3位。
样例输入:1 1 2 2
样例输出:1.414
解题思路:运用笛卡尔距离公式!
大佬的代码:
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double Xa,Xb,Ya,Yb;
double len;
cin>>Xa>>Ya;
cin>>Xb>>Yb;
len=sqrt( (Xa-Xb)*(Xa-Xb) + (Ya-Yb)*(Ya-Yb) );
cout<<setiosflags(ios::fixed)<<setprecision(3);
cout<<len<<endl;
return 0;
}
个人认为写的较好,就是有点复杂。
本蒟蒻的代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
double x,y,a,b,l;
cin>>x>>y>>a>>b;
x=x-a;
y=y-b;
x=x*x;
y=y*y;
l=sqrt(x+y);
printf("%.3f",l);//输出至小数点后3位
return 0;
}
下期再见👋