【题目描述】
已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度,保留到小数点后3位。
【输入】
第一行是两个实数Xa,Ya,即A的坐标。
第二行是两个实数Xb,Yb,即B的坐标。
输入中所有实数的绝对值均不超过10000。
【输出】
一个实数,即线段AB的长度,保留到小数点后3位。
【输入样例】
1 1
2 2
【输出样例】
1.414
【程序分析】
用两点间得距离公式来实现:

【程序实现】
用sqrt函数:
#include <stdio.h>
#include <math.h>
int main() {
double x1, y1, x2, y2;
// 读取点A的坐标
scanf("%lf %lf", &x1, &y1);
// 读取点B的坐标
scanf("%lf %lf", &x2, &y2);
// 计算两点间距离:√[(x2-x1)² + (y2-y1)²]
double distance = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
printf("%.3lf\n", distance);
return 0;
}
用pow和sqrt函数:
#include <stdio.h>
#include <math.h>
int main() {
double x1, y1, x2, y2;
scanf("%lf %lf", &x1, &y1);
scanf("%lf %lf", &x2, &y2);
// 使用pow函数计算平方
double distance = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
printf("%.3lf\n", distance);
return 0;
}
3674

被折叠的 条评论
为什么被折叠?



