gpt4 book ai didi

c++ - 给定n个数,写一个例程找出4个连续数中最大的数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:20 24 4
gpt4 key购买 nike

我想弄清楚如何从序列中的前四个数字中找到最大的,然后在序列中的后四个数字中找到最大的,等等...

我写了一个函数来查找数组中最大的元素,它在这里:

double max_array(int n, double array[]){
double arr[n];
arr[0] = 0;
double max;
for(int i = 0; i < n; i++)
{
if(arr[0] < array[i])
arr[0] = array[i];
}
max = arr[0];
return max;
}

我相信我可以使用我在这里所做的来编写一个例程来完成我描述的后者,但我不确定如何做到这一点。也许我必须编写一个全新的函数,但我不确定,非常感谢任何建议。

最佳答案

这应该或多或少地做你想做的。有多个结果,一个对应于输入数组中的每个四边形:

#include <valarray>
#include <cassert>

std::valarray<double> maxQuads(std::valarray<double> input) {
assert(!(input.size() % 4)); // The input must contain a multiple of 4 values
std::valarray<double> output(input.size() / 4);
for(std::size_t sliceIndex = 0; sliceIndex + 4 < input.size(); sliceIndex += 4) {
std::slice slice(sliceIndex, 4, 1);
output[sliceIndex / 4] = std::valarray(input[slice]).max();
}
return output;
}

void test() {
double aTestArray[] = {1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5};
std::valarray results = maxQuads(std::valarray(aTestArray, 8));
std::cout << "Max of the first 4: " << results[0];
std::cout << "Max of the second 4: " << results[1];
}

关于c++ - 给定n个数,写一个例程找出4个连续数中最大的数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660170/

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