如果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