c语言编程~~星期天之前要的

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:34:34
设计程序:输入平面上5个点的坐标,求5个点各点间距离总和。要求分别用一维数组和二维数组实现。
提示:
1) 如果用一维数组实现,可以分别用x数组和y数组表示5个点的横坐标和纵坐标,x[ i ], y[ i ]分别表示第i个点的横坐标和纵坐标。如果用二维数组实现,则可以用point[5][2]表示5个点的坐标,point[ i ][0]和point[ i ][1]分别表示第i个点的横坐标和纵坐标。
2) 注意,本题要用2重循环求5个点各点间距离总和,在用2重循环时,注意循环变量的取值,求距离时不要重复了。

终于调试完了,楼主看看符合不
用一维数组的:
#include<stdio.h>
#include<math.h>
void main()
{
int x[5],y[5];
int i,j;
float t,sum=0;
for(i=0;i<5;i++)
{
printf("请输入第%d个坐标:",i+1);
scanf("%d,%d",&x[i],&y[i]);
}
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{
t=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
sum=sum+t;
}
printf("距离之和为%f\n",sum);
}

用二维数组的
#include<stdio.h>
#include<math.h>
void main()
{
int a[2][5];
int i,j;
float t,sum=0;
for(j=0;j<5;j++)
{
printf("请输入第%d个坐标:",j+1);
scanf("%d,%d",&a[0][j],&a[1][j]);
}
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{
t=sqrt((a[0][j]-a[0][i])*(a[0][j]-a[0][i])+(a[1][j]-a[1][i])*(a[1][j]-a[1][i]));
sum=sum+t;
}
printf("距离之和为%f&#