???来刷水题,0分???

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

luosw @ 2020-03-16 09:22:42

求解

#include<bits/stdc++.h>
using namespace std;
double ans1,ans2;
int n,k,a1,a2;
int main(){
    cin>>n>>k;
    for(int i=1;i<n;i++){
        if(i%k==0){
            ans1+=i;
            a1++;
        }
        else{
            ans2+=i;
            a2++;
        }
    }
    ans1/=a1;
    ans2/=a2;
    cout<<fixed<<setprecision(1)<<ans1<<' '<<ans2;
}

by UnyieldingTrilobite @ 2020-03-16 09:23:51

btd,另外为什么是<n而不是<=n


by luosw @ 2020-03-16 09:25:32

@return20071007 woc本中学生自愧不如,xxs牛逼!


by chinaboy @ 2020-03-20 16:03:46

@return20071007

是从1到n 所以是

(for int i=1;i<=n;i++)


by UnyieldingTrilobite @ 2020-03-20 16:05:30

@chinaboy 没说错啊


by chinaboy @ 2020-03-20 16:05:40

@return20071007

啊,不好意思,我看差了


by chinaboy @ 2020-03-20 16:13:29

@return20071007

我最开始以为是你不知道呢,后来一看是你在提醒他,理解差了,抱歉


by UnyieldingTrilobite @ 2020-03-20 16:13:47

@chinaboy 谔谔,没事


by chinaboy @ 2020-03-20 16:14:54

@return20071007

这题你知道为什么吗,算法是一样的,但用double 和float 结果是不一样的。。。。。迷惑行为。。。。。。


by UnyieldingTrilobite @ 2020-03-20 16:15:21

@chinaboy ?


by chinaboy @ 2020-03-20 16:18:05

#include<stdio.h>
int main()
{
    int n,k,counta=0,countb=0;
    //double suma=0,sumb=0;
    float suma=0,sumb=0;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
    {
        if(i%k==0)
        {
            suma+=i;
            counta++;
        }
        else 
        {
            sumb+=i;
            countb++;
        }
    }
//  printf("%.1llf %.1llf\n",suma/counta,sumb/countb);
    printf("%.1f %.1f\n",suma/counta,sumb/countb);
    return 0;
}

@return20071007 你试试 10000 19 这组数据


| 下一页