求助,为什么一直tle

P5719 【深基4.例3】分类平均

jd123 @ 2022-09-15 19:49:23


int main(){
    int n,k,sum1=0,sum2=0,cnt1=0,cnt2=0,c=1;
    scanf("%d %d",&n,&k);
    for(;c<=n;c++)
    {
        if(c=k||(c>k&&c%k==0))
        {
            sum1+=c;
            cnt1++;
        }else   {
            sum2+=c;
            cnt2++;
                }
    }
    double a,b;
    a=sum1/cnt1;
    b=sum2/cnt2;
    printf("%.1d %.1d",a,b);
    return 0;

}

by WA_sir @ 2022-09-15 19:59:55

@jd123

首先,c=k改为c==k


by WA_sir @ 2022-09-15 20:01:06

还有,把int改为double


by WA_sir @ 2022-09-15 20:02:54

但n和k不用改


by jd123 @ 2022-09-15 20:07:09

@wztony2022 我刚刚找出一个错误,就是最后的a和b是double型,要用%f输出,但是也只有第一个和第五个ac了,中间三个wa


by WZWZWZWY @ 2022-09-15 20:07:26

第7行if(c=k||(c>k&&c%k==0))错了,c=k是赋值语句,应为c==k.

除法运算不对,sum1为整数,cnt1也是整数,整数除以整数值会是整数,所以应该在被除数或除数那里乘以1.0

输出也有问题,%d是整数,双精度浮点数是%lf


by WZWZWZWY @ 2022-09-15 20:08:25

@jd123


by 初星逝者 @ 2022-09-15 20:13:50

@jd123

c=k||(c>k&&c%k==0) 改为 c%k==0

%f改为%.1f


by 初星逝者 @ 2022-09-15 20:15:37

@初星逝者 还有a=sum1/cnt1; 改为 a=1.0*sum1/cnt1;下同


|