即使输入的元素数量最终是偶数,我的代码也会跳过 if 检查。这可能是我在阅读的章节中错过或没有注意到的一些愚蠢的事情。感谢您查看。
#include "std_lib_facilities.h"
using namespace std;
int main()
{
vector<double> num;
double numb;
while(cin>>numb)
num.push_back(numb);
sort(num.begin(), num.end());
if(num.size() <= 2)
cout << "Need more data." << endl;
else if (num[num.size()%2] == 0)//even?
{
cout << "Median is: " << num[num.size()/2] << endl;
cout << "Median is: " << num[(num.size()/2)+1] << endl;
}
else
cout << "Median is: " << num[num.size()/2] << endl;
keep_window_open();
}
最佳答案
我认为您正在尝试使用此测试:
num[num.size()%2] == 0
查看您的 vector 是否为偶数长度。但这不是它的作用 - 它检查 num[0]
或 num[1]
处的 value 以查看它是否为零。
你想要:
num.size() % 2 == 0
关于c++ - 尝试在我的代码中找到中位数,如果检查似乎不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17056811/