gpt4 book ai didi

c++ - 尝试在我的代码中找到中位数,如果检查似乎不起作用?

转载 作者:行者123 更新时间:2023-11-27 23:14:52 25 4
gpt4 key购买 nike

即使输入的元素数量最终是偶数,我的代码也会跳过 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com