题目如下,显示错误答案,请大家找一下哪里出了问题qwq

img


#include <stdio.h>

int main( )
{
int T;
scanf("%d",&T);
while(T--)
{
int a1,a2,b1,b2,c1,c2,t;
scanf("%d %d %d",&a1,&b1,&c1);
scanf("%d %d %d",&a2,&b2,&c2);
if(a1<c1)
t=a1;
a1=c1;
c1=t;
if(b1<c1)
t=b1;
b1=c1;
c1=t;
if(a1<b1)
t=a1;
a1=b1;
b1=t;
if(a2<c2)
t=a2;
a2=c2;
c2=t;
if(b2<c2)
t=b2;
b2=c2;
c2=t;
if(a2<b2)
t=a2;
a2=b2;
b2=t;
if(a1b2==a2b1&&b2c1==b1c2)
printf("Yes\n");
else if(a1==a2==b1==b2==c1==c2)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}

我知道了,把那个<改成<=

代码块要加大括号
if(a1<c1)
t=a1;
a1=c1;
c1=t;
改为
if(a1<c1)
{
t=a1;
a1=c1;
c1=t;
}
参考修改吧

else if(a1==a2==b1==b2==c1==c2)也不对
else if((a1==a2) && (b1==b2) && (c1==c2))


#include <stdio.h>


void sort(int &a, int &b, int &c)
{
    int tmp = 0;
    if (a > b)
    {
        tmp = a;
        a = b;
        b = tmp;
    }
    if (a > c)
    {
        tmp = a;
        a = c;
        c = tmp;
    }
    if (b > c)
    {
        tmp = b;
        b = c;
        c = tmp;
    }
}
int main()
{
    int T;
    scanf("%d", &T);
    while (T--)
    {
        int a1, a2, b1, b2, c1, c2, t;
        scanf("%d %d %d", &a1, &b1, &c1);
        if (a1 + b1 < c1 || a1 + c1 < b1 || b1 + c1 < a1)
        {
            printf("数据错误,无法组成三角形\n");
            continue;;
        }
        sort(a1, b1, c1);
        scanf("%d %d %d", &a2, &b2, &c2);
        if (a2 + b2 < c2 || a2 + c2 < b2 || b2 + c2 < a2)
        {
            printf("数据错误,无法组成三角形\n");
            continue;
        }
        sort(a2, b2, c2);
        if (a1/a2 == b1/b2 == c1/c2 )
        {
            printf("相似三角形\n");
        }
        else
        {
            printf("非相似三角形\n");
        }
    }
    return 0;
}