问题还原:要求根据输入的城市的坐标值来求各城市之间的距离,保留两位小数
#include<stdio.h>
#include<math.h>
#define num_C 4 //城市个数
double dis_C[num_C][num_C];//各个城市之间的距离
//定义结构体
typedef struct C
{
int x;
int y;
};
C city[num_C];//记录各个城市的坐标
void input() //输入各个城市的坐标
{
int i;
printf("请输入%d个城市的坐标:\n",num_C);
for (i = 0; i<num_C; i++)
{
scanf("%d %d", &city[i].x, &city[i].y);
}
}
void caleverycity_dis()//计算各个城市之间互相的距离
{
int i, j;
for (i = 0; i<num_C; i++)
{
for (j = 0; j<num_C; j++)
{
if (i == j)
{
dis_C[i][j] = 0;
}
else
{
dis_C[i][j] = sqrt(pow((city[i].x - city[j].x), 2) + pow((city[i].y - city[j].y), 2));
}//pow计算次幂函数,sqrt求平方根函数
}
}
}
void print()//输出各个城市之间的互相距离
{
int i, j;
printf(" 城市0 城市1 城市2 城市3\n");
for (i = 0; i<num_C; i++)
{
printf("城市%d ", i);
for (j = 0; j<num_C; j++)
{
printf("%.2lf ", dis_C[i][j]);//保留两位小数,double型
}
printf("\n");
}
}
int main()
{
input();//输入各个城市的坐标
caleverycity_dis();//计算各个城市之间互相的距离
print();
return 0;
}