C语言计算追赶问题,C语言

追赶问题

######不能正确按输出样例输出

img

#include
#include
int main()
{
    int h=0,m=0,s=0;
    double d,v1,v2,x1,x2,t,r,o,p,q;
    scanf("%lf%lf%lf",&d,&v1,&v2);
    scanf("%lf%lf%lf",&o,&p,&q);
    x1=v1*5/18,x2=v1*5/18;r=1000*d;
    if(v1>=v2)
        printf("None\n");
    else
    {
        double i=3600;
        t=r/(x2/x1);
        while(t/i!=0)
        {
            h++;
            i*=(h+1);
        }
        t=fmod(t,3600);double j=60;
        while(t/j!=0)
        {
            m++;
            j*=(m+1);
        }
        s=fmod(t,60);
        s=s+q;
        if(s>=60)
        {
            s++;
            s=fmod(s,60);
        }
        if(m>=60)
        {
            h++;
            m=m%60;
        }
        while(h>24)
        {
        h=h-24;
        }
        printf("%d:%d:%.1f\n",h,m,s);
    }
    return 0;
}
 

你看这样可行吗?
不懂得可以问我


#include<stdio.h>
#include<math.h>
int main()
{
    int h=0,m=0;//最终时刻小时 分
    double s=0;//秒
    double t;//
    double d,v1,v2,o,p,q;
    scanf("%lf%lf%lf",&d,&v1,&v2);
    scanf("%lf%lf%lf",&o,&p,&q);
    //x1=v1*5/18,x2=v1*5/18;r=1000*d;
    if(v1>=v2)
        printf("None\n");
    else
    {
        double i=3600;
        t=d/(v2-v1);
        t=t*3600+o*3600+p*60+q;
        h=t/3600;
        m=(t-h*3600)/60;
        s=(t-h*3600-m*60);
        printf("%d:%d:%.1f\n",h,m,s);
    }
    return 0;
}



#include<stdio.h>
#include<math.h>
int main()
{
    int h=0,m=0,s=0;
    double d,v1,v2,x1,x2,t,r,o,p,q;
    scanf("%lf%lf%lf",&d,&v1,&v2);
    scanf("%lf%lf%lf",&o,&p,&q);
    x1=v1*5/18,x2=v2*5/18;r=1000*d;
    if(v1>=v2)
        printf("None\n");
    else
    {
        t=r/(x2-x1);
        h = t / 3600;
        t -= h * 3600;
        m = t / 60;
        t -= m * 60;
        s = t;
        s += q;
        if(s>=60)
        {
            s -= 60;
            m += 1;
        }
        if(m>=60)
        {
            m -= 60;
            h += 1;
        }
        while(h>24)
        {
        h=h-24;
        }
        printf("%d:%d:%.1f\n",h,m,s);
    }
    return 0;
}

帮你改了