计算两个三角形是否相等

时间:2018-10-27 09:58:44

标签: c

您好,我想寻求帮助,因为我目前正在学习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;
}

0 个答案:

没有答案