C++0FEN

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

Mxolq_Icb @ 2023-02-02 23:06:06

JIU


by Mxolq_Icb @ 2023-02-02 23:06:25

#include<iostream>
#include<iomanip>
#include<cmath>
#include <algorithm>
#define INT int
#define DOUBLE double
#define CIN cin
#define COUT cout
#define FOR for
#define IF if
#define ELSE else
#define FIXED fixed
#define SETPRECISION setprecision
using namespace std;
int main()
{//sqrt- pow+ fixed<<setprecision(num)/
    INT N,K,A[10001],COUNT1=1,COUNT2=1,B[10001];
    DOUBLE SUM1,SUM2;
    CIN>>N>>K;
    FOR(INT I=1;I<=N;I++){
        IF(I%K==0){
            A[COUNT1]=I;
            COUNT1++;
        }ELSE{
            B[COUNT2]=I;
            COUNT2++;
        }
    }
    FOR(INT I=1;I<=COUNT1;I++){
        SUM1+=A[I];
    }
    FOR(INT I=1;I<=COUNT2;I++){
        SUM2+=B[I];
    }
    SUM1/=COUNT1;
    SUM2/=COUNT2;
    COUT<<FIXED<<SETPRECISION(1)<<SUM1;
    COUT<<" "<<FIXED<<SETPRECISION(1)<<SUM2;
    return 0;
}

by Light_az @ 2023-02-02 23:14:45

@Mxolq_Icb sum1,sum2 定义为 double 或者 SUM1*1.0/COUNT1


by ud2_ @ 2023-02-02 23:18:23

sum1sum2 没有初始化,count1count2 应该从 0 而不是 1 开始数。

另外如果键盘左边有个写着 Caps Lock 的键,那么可以用它关闭大写锁定。


by tianbiandeshenghuo @ 2023-02-02 23:19:41

@Mxolq_Icb

这马蜂真好看

3536 行需要强制转 double,乘个 1.0 就好,然后还要注意,count 实际取值应改 -1。改为:

    SUM1=1.0 * SUM1 / (COUNT1-1);
    SUM2=1.0 * SUM2 / (COUNT2-1);

|