???来刷水题,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-20 16:18:57

口胡精度?


by chinaboy @ 2020-03-20 16:26:42

@return20071007

不知啊,最开始我就是卡在了这里,但他们说吧float 改double 就好了,也确实AC了


by UnyieldingTrilobite @ 2020-03-20 16:27:23

QAQ


by ShyButHandsome @ 2020-04-04 08:09:42

@chinaboy

精度不同

float只保证了6位有效数字

double则有10


by chinaboy @ 2020-04-09 15:59:09

@ShyButHandsome

好的,感谢,一直找不到原因。


by ShyButHandsome @ 2020-04-09 23:05:43

@chinaboy

你要了解

为什么浮点型叫浮点型

为什么浮点数不能%

为什么会有精度问题

浮点数还有一些特性,

比如:

浮点数是不能直接比较大小的

float其实大部分时候并没有比double

等等

如果你还不了解,那么我建议你去百度弄懂

如果你已经了解了,那么请忽略上面这段 (橙名大佬怎么可能不懂)


by 周鸿远 @ 2020-10-23 21:05:23

#include <iostream>
#include <stdio.h>
using namespace std;
int n, k, sum;
int main () {
    scanf ("%d%d", &n, &k);
    for (int i = k; i <= n; i += k)
        sum += i;
    printf ("%.1f ", double (sum) / (n / k));
    sum = (1 + n) * n / 2 - sum;
    printf ("%.1f\n", double (sum) / (n - n / k));
    return 0;
}

上一页 |