2564 - 函数练习-4

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

编写函数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;
}