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;
}
在for循环中,p、n和z的值不变。有人能告诉我为什么吗?
在函数中执行1/arr.size()
。结果是一个值为0
的整数。
您需要在分区中至少使用一个double
。
示例:
p += 1. / arr.size();
对n
和z
也执行相同操作。