第三个点WA了
查看原帖
第三个点WA了
598378
linkgamma楼主2022/4/24 10:37
#include<stdio.h>
#include<math.h>
int gcd(int a, int b)
{
    return b == 0 ? a : gcd(b, a % b);
}
int main()
{
    int x1, y1, x2, y2, k1, k2, y,i,j;
    float m;
    scanf("%d %d\n%d %d", &x1, &y1, &x2, &y2);
    k2 = y2 - y1;
    k1 = x2 - x1;
    y = gcd(abs(k1), abs(k2));
    k2 = k2 / y;
    k1 = k1 / y;
    m = y1 - 1.0*k2 * x1 / k1;
    for (i = 0;; i++)
    {
        for (j = 1;j<=1000; j++)
        {
            if (1.0*i / j == fabs(m))
            {
                goto show;
            }
        }
    }
show:
    if (k2 != 0)
    {
        if (abs(k2) % abs(k1) == 0)
        {
            printf("y=%dx", k2 / k1);
        }
        if (abs(k2) % abs(k1) != 0)
        {
            if (k2 / k1 > 0)
                printf("y=%d/%d*x", abs(k2), abs(k1));
            if (k2 / k1 < 0)
                printf("y=-%d/%d*x", abs(k2), abs(k1));
        }
    }
    if (i != 0)
    {
        if (i % j == 0)
        {
            if (m>0)
                printf("+");
            printf("%d", i / j);
        }
        if (i % j != 0)
        {
            if (m>0)
                printf("%d/%d", abs(i), abs(j));
            if (m<0)
                printf("-%d/%d", abs(i), abs(j));
        }
    }
    return 0;
}
2022/4/24 10:37
加载中...