【问题标题】:Why my function having vector array as parameter not giving any value? [duplicate]为什么我的函数以向量数组作为参数没有给出任何值? [复制]
【发布时间】:2021-03-16 20:00:59
【问题描述】:
void plusMinus(vector<int> arr) {
    double p=0, n=0, z=0;
    for(int i=0; i<arr.size(); i++)
        if(arr[i]>0)
            p += 1/arr.size();
        else if(arr[i]<0)
            n += 1/arr.size();
        else
            z += 1/arr.size();
    cout<<p<<endl<<n<<endl<<z;
}

p、n 和 z 的值在 for 循环中没有变化。谁能告诉我为什么?

【问题讨论】:

    标签: c++ vector c++14


    【解决方案1】:

    您在函数中执行1/arr.size()。结果是一个整数,值为0

    您需要在分区中使用至少一个double

    例子:

    p += 1. / arr.size();
    

    nz 也这样做。

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 2016-06-30
      • 2020-01-16
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      相关资源
      最近更新 更多