点在printf函数中是什么意思

时间:2019-06-26 12:05:55

标签: c++

我正在解决这个问题:

  

瓦尼亚(Vanya)沿着一条长为l的直的街道走了深夜,被n盏灯笼照亮。考虑坐标系,其街道的起点与点0相对应,其终点与点l相对应。然后第i个灯笼在ai点。灯笼照亮了距离街道最多d的所有街道点,其中d是一个正数,对于所有灯笼来说都是相同的。

     

Vanya想知道:灯笼要照亮整条街道的最小光半径d是多少?

在某些测试中,它给出了WA预期值:** *'22258199.50000 * 00',发现: '22258200.0000000'

但是在某些答案不是整数的测试中,我的代码输出正确的答案。 (即它可以输出两倍)

当我看到解决方案时,是"printf("%.10f", maxdist/2.)"而不是"cout << (double)maxdist/2"

问题:

  • 为什么我的代码不起作用?
  • maxdist/2.”末尾的圆点是什么意思?
  • 为什么变量"&前没有maxdist“?
#include <bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(), (x).end()
int main(){
    int n, l;
    cin >> n >> l;
    vector<int> v;
    for(int i = 0; i < n; i++){
        int x;
        cin >> x;
        v.pb(x);
    }
    sort(all(v));
    int maxdist = 2*max(v[0], l-v[n-1]);
    for(int i = 0; i < n-1; i++){
        maxdist = max(maxdist, v[i+1] - v[i]);
    }
    cout << (double)maxdist/2;
}

1 个答案:

答案 0 :(得分:0)

“%。10f”-表示变量的浮点值(最多10个小数位)和“”。表示小数点,后面跟着f的任何数字将决定答案将移到多少小数位。