这是《C语言入门实战》系列的第2篇。
上一篇:C语言入门实战(1):准备开发环境、快速上手main()函数
下一篇:C语言入门实战(3):秒数转换为时:分:秒
题目
求平面上任意两点之间的距离。
设这两个点的坐标分别为
P
1
(
x
1
,
y
1
)
、
P
2
(
x
2
,
y
2
)
P1(x1,y1)、P2(x2,y2)
P1(x1,y1)、P2(x2,y2) ,两点距离计算公式为:
∣
P
1
P
2
∣
=
(
x
2
−
x
1
)
2
+
(
y
2
−
y
1
)
2
\left | P_1P_2\right | = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}
∣P1P2∣=(x2−x1)2+(y2−y1)2
程序运行时依次输入
x
1
,
y
1
,
x
2
,
y
2
x1,y1,x2,y2
x1,y1,x2,y2 的值,计算并输出两点距离,计算结果保留2位小数。
提示
在C语言中求平方根的函数是
s
q
r
t
(
x
)
sqrt(x)
sqrt(x) ,程序中需要要调用该函数,在程序开头加上头文件#include <math.h>
。
输入输出格式示例:
输入:2 3 8.1 6<回车>
输出:6.80
注意:要求编写顺序结构程序。
参考代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/**
程序处理用户的输入,给用户返回处理结果(输出)
计算坐两点(x1,y1)、(x2,y2)之间的距离,结果保留2位小数
自己定义的distance函数,有4个输入,通过return返回一个float结果
*/
float distance(float x1, float y1, float x2, float y2) {
float dx = x2 - x1;
float dy = y2 - y1;
return sqrt(dx*dx + dy*dy);
}
//程序入口,主函数
int main() {
// 先在栈内存中定义4个浮点数
float x1,y1,x2,y2;
// 从标准输入(键盘)读取4个float值
scanf("%f %f %f %f", &x1,&y1,&x2,&y2);
// 调用自己写的distance()函数,计算距离
float dist = distance(x1, y1, x2, y2);
// 将浮点数dist输出到标准输出设备(屏幕)上
// .2f表示,以浮点数格式,小数点后面保留2位小数
printf("%.2f", dist);
return 0;
}
代码复盘
float
浮点数,可以理解为带小数点的小数(区别于整数),在输入/打印格式中以%f
进行标记。
scanf
是stdio.h
头文件中声明的函数,用于从标准输入(通常是键盘)按指定格式接收输入内容。