您好,我想寻求帮助,因为我目前正在学习C,并且我的作业似乎无法找到解决方案。如果有人能帮助我并指出正确的方向,我将感到非常高兴。
我们必须创建一个程序,该程序需要输入构成三角形的三个点的坐标。用户将以双精度格式输入坐标。他将为我们提供两个三角形,我们必须找出它们是否相等,是否不相等,是否具有相同的圆周 但它们的角度不同,或者根本不是三角形。
我已经开始写一些代码,但是我只能设法以数组的形式获取输入内容,然后迷路了。我试图计算三角形的边,但是由于浮点数的精度,我无法弄清楚。到目前为止,这是我的代码:
int main(void)
{
printf("Triangle #1:\n");
int i=0;
int j=0;
double a,b,c,o,o1,a1,b1,c1;
double array[6][2];
for (i=0; i<3;i++){
printf("Point %c:\n",char(65+i));
if(scanf("%lf %lf",&(array[i][j]),&(array[i][j+1]))!= 2){
printf("Wrong input.\n");
return 1;
}
}
a=sqrt(pow((array[0][0] - array[1][0]), 2) + pow((array[0][1] - array[1][1]), 2));
b=sqrt(pow((array[1][0] - array[2][0]), 2) + pow((array[1][1] - array[2][1]), 2));
c=sqrt(pow((array[2][0] - array[0][0]), 2) + pow((array[2][1] - array[0][1]), 2));
o=a+b+c;
printf("%lf\n",o);
printf("Triangle #2:\n");
for (i=3; i<6;i++){
printf("Point %c:\n",char(62+i));
if(scanf("%lf %lf",&(array[i][j]),&(array[i][j+1]))!= 2){
printf("Wrong input.\n");
return 1;
}
j=0;
}
a1=sqrt(pow((array[3][0] - array[4][0]), 2) + pow((array[3][1] - array[4][1]), 2));
b1=sqrt(pow((array[4][0] - array[5][0]), 2) + pow((array[4][1] - array[5][1]), 2));
c1=sqrt(pow((array[5][0] - array[3][0]), 2) + pow((array[5][1] - array[3][1]), 2));
o1=a1+b1+c1;
printf("%lf\n",o1);
if(o1==o)
printf("Triangles have same circumferences.\n");
return 0;
}