如果u想使用你已经拥有你能做到这一点的功能这样 创建调用你已经有了功能的另一个功能。
double* max_array_vec(int n, double array[]){
int max_mumber = n/4 + (n%4); // how many max number you will have
double max[max_number];
double temp[4];
arr[0] = 0;
for(int i = 0; i < max_number; i++)
{
std::copy(array+ (3 * i), array+ (3 * (i + 1)), temp);
max[i] = max_array(4,temp);
}
max = arr[0];
return max;
}
但是你可以使另一个函数完成整个过程并且它可以更容易。
编第二部分
double *max_array(int n, double *array){
double arr[n/4 + 1] = {-1000, } ;// since ur looking for the biggest number u should initialize tis array with numbers really small like -400 or something like that
int index = 0;
for(int i = 0; i < n; i++)
{
if(i%4 == 0 && i!= 0)
index++;
if(arr[index] < array[i])
arr[index] = array[i];
}
//printf("\n");
//for(int i = 0; i < 4; i++)
//printf("%f\n ", arr[i]);
return arr;
}
问题是拳头时间我不是忽视i = 0时,我不需要增加索引
你是对的,你可以用'max_array'去做吧。通过四个元素遍历数组(在每次迭代中跳过四个元素),并且对于每次迭代,使用'n = 4'和'array'调用'max_array'等于指向当前元素的指针。 – GigaRohan
@GigaRohan感谢您的评论,当谈到C++术语时,我仍然是一个新手,所以我不完全理解。你能否提供一个扩大你刚才所说的答案? – Scooby
Anthony D.提供了下面的代码 – GigaRohan