首页 > 解决方案 > 为什么我的函数以向量数组作为参数没有给出任何值?

问题描述

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++vectorc++14

解决方案


1/arr.size()在函数中做。结果是一个值为 的整数0

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

例子:

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

做同样的n事情z


推荐阅读