请问这里为什么会超时

img

img

img

#include<stdio.h>
#include<math.h>

int main() {
double a, b, c, d;
scanf("%lf %lf", &a, &b);
if (fabs(b - (int)b) < 1e-8) {
printf("%d 0.0000000000\n", (int)b);
}
else {
if (b == 1) {
printf("More than one!\n");
}
if (b >1)
{
c = a + 1;
for (; c++;)
{
d = fabs(c / a - b);
if (d < 1e-8)
{
printf("%d/%d %.10lf\n", (int)c, (int)a, d);
break;
}
}
}

    if (b < 1)
    {
        c = a -1;
        for (; c--;c>0)
        {
            d = fabs(c / a - b);
            if (d < 1e-8)
            {
                printf("%d/%d %.10lf\n", (int)c, (int)a, d);
                break;
            }
        }
    }
}
return 0;

}

你这写的问题很多啊
给你写了下

img


#include<stdio.h>
#include<math.h>

int main()
{
    double a, b, c, d, g;
    scanf("%lf%lf", &a, &b);
    int flag=1;
    if(b<0) {
        flag=-1;
        b=fabs(b);
    }
    double min=b,minnum1=1,minnum2=1;
    if (fabs(b - (int)b) < 1e-8)
    {
        printf("%d 0.0000000000\n", (int)b);
    }
    else
    {
        if (b == 1)
        {
            printf("More than one!\n");
        }
        else if (b >1)
        {
            for(c=1; c/g<=b; c++)
            {
                for(g=1; g<=a; g++)
                {
                    d=fabs(c/g-b);
                    if(d<min)
                    {
                        min=d;
                        minnum1=c;
                        minnum2=g;
                    }
                }
            }
            printf("%d/%d %.10lf",flag*(int)minnum1,(int)minnum2,min);
        }
    }
    return 0;
}
             for (; c++;)
            {
                d = fabs(c / a - b);
                if (d < 1e-8)
                {
                    printf("%d/%d %.10lf\n", (int)c, (int)a, d);
                    break;
                }
            }

逻辑我先没看,只检查了代码
循环有问题,d = fabs(c / a - b);,a和b的值一直不变,c一直++,那么d的值就一直增大,循环结束条件是d<0.0000000001,所以就是死循环,一直运行for循环

for循环那有问题 就是for(;c++;)如果你想让它一直循环也不是这样写的吖,写成for(;;)才对
😂😂多有得罪,望采纳谢谢啦

简单来说,就是for循环实现出现了些许差错,循环次数过多,导致时间过长,进而显示超时。

for循环执行次数太多,所以超时,检查一下算法设计