2564 - 函数练习-4
编写函数distance,计算两点间的距离。
函数原型如下:
double distance(int x1, int y1, int x2, int y2);
其中x1、y1及x2、y2分别为P、Q两点的坐标,即P(x1,y1)、Q(x2,y2)。假设坐标点单位均为整数。
函数返回值为PQ两点间的距离。
从键盘上输入一下正整数n(2<=n<=10),然后依次输入n个点的坐标。再依次计算这n个点间的n-1条折线的距离之和,并输出。输出结果保留两位小数。
如:输入3 5 8 3 5 8 4,则代表3个点分别为R(5,8)、 S(3,5)、 T(8,4)。计算并输出RS及ST的距离和。
<br />
<br />
<br />
<br />
题目输入
2 3 8 3 9
题目输出
1.00
输入/输出样例
题目输入
3 8 4 0 8 2 10
题目输出
11.77
C语言解答
#include<stdio.h> #include<math.h> double distance(int x1,int y1,int x2,int y2) { double d,d1,d2,b; d1=(x2-x1)*(x2-x1); d2=(y2-y1)*(y2-y1); b=d1+d2; d=sqrt(b); return d; } int main() { int n,m,k,i,a[100],b[100]; double q,s; q=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); scanf("%d",&b[i]); } for(i=0;i<n-1;i++) { for(m=i+1;m<=n;m++) { s=distance(a[i],b[i],a[m],b[m]); q=q+s; break; } } printf("%.2lf",q); return 0; }
C++解答
#include<stdio.h> #include<math.h> int main() { double distance(int x1, int y1, int x2, int y2); int n, a[100], b[100], i, j; double s, s1=0; scanf("%d", &n); for(i=0; i<n; i++) { scanf("%d%d", &a[i], &b[i]); } for(i=0;i<n-1;i++) { for(j=i+1;j<=n;) { s=distance(a[i],b[i],a[j],b[j]); s1 += s; break; } } printf("%.2lf", s1); } double distance(int x1, int y1, int x2, int y2) { double s, s1, s2, s3; s1 = x1-x2; s2 = y1-y2; s3 = pow(s1, 2)+pow(s2, 2); s=sqrt(s3); return s; }