' '输出均值

What does a '.' means in output?

本文关键字:输出      更新时间:2023-10-16

所以,我正在解决一个问题,基本上有以下代码:

int rez,arr[10000],n,l,diff;
float f;
int main (void)
{
    cin>>n>>l;
    for (int i = 0; i < n; i++ )
    {
        cin>>arr[i];
    }
    sort(arr,arr+n);
    rez = 2*max(arr[0],l-arr[n-1]);
    for ( int i = 0; i < n-1; i++ )
    {
        rez = max(rez, arr[i+1]-arr[i]);
    }
    f = rez/2.0;
    printf("%.10fn",f);
    return 0;
}

以上是以下问题的代码:

http://codeforces.com/problemset/problem/492/B

逻辑:将灯笼按非降序排列。然后我们需要找到两个相邻灯笼之间的最大距离,设它为maxdist。我们还需要考虑街道边界,并计算从外面的灯笼到街道边界的距离,它将是(a[0] - 0)和(l - a[n - 1])。答案将max (maxdist/2,马克斯([0]- 0,l - (n - 1)))

现在,上面的代码给出了一个WA(错误的答案),但是修改最后一个语句为,

printf("%.10fn",rez/2.);(并去掉f),我被接受了。这个.是什么意思,为什么当我使用一个额外的变量f时,它会给出一个WA ?

两个语句中.的含义如下-

让我们举一个例子int a=4; float c;如果我们写c=a/3; printf("%f",c);1.000000(精确到六个小数位),如果你写printf("%.10f",c);然后它会给1.0000000000(精确到十小数位),这意味着写作. printf将意义数字精确数量.之后写的,如果我们写c=a/3.0这意味着我们告诉编译器将int by float和特征转换促进(或类型)发生和依从者治疗int a as float1.333333给输出。因此,我们可以得到精确的答案,直到所需的有效数字。