c++ - 为什么我的函数以向量数组作为参数没有给出任何值?
问题描述
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 循环中没有变化。谁能告诉我为什么?
解决方案
你1/arr.size()
在函数中做。结果是一个值为 的整数0
。
double
您需要在分区中使用至少一个。
例子:
p += 1. / arr.size();
做同样的n
事情z
。
推荐阅读
- python - pandas:计算两个不同数据帧的列值之间的时间差
- python - 这是过拟合的情况吗?CNN图像分类器
- javascript - 在 DomContentLoaded 之前执行 JS?
- angular - Firebase Functions Deploy:解析函数触发器时出错
- drupal - 页面中 header.html.twig 文件路径中的渲染问题--front.html.twig
- django - Django debug False 阻止访问保存在媒体文件夹中的文件
- python - Python,如何用文本文件中的不同唯一字符串替换文件中的特定字符串?
- flutter - 如何在 Flutter 中使 TextField 底部居中
- python - Keras 预测糖尿病视网膜病变
- vb.net - 性能计数器。如果相同的进程正在运行,我如何访问正确的进程?