我需要你的帮助来编写一个执行以下操作的函数:
它收到2个指针(类型为double);
一个点在数组的第一个元素上,一个指向数组后面。这个指针……
如果我理解你的作业,你需要一个递归的解决方案;其中具有1个元素的数组的最大值是该元素,并且具有多于1个元素的数组的最大值是递归地,左半部分的最大值或右半部分的最大值。
// NOT TESTED double parallel_max(double *a, double *b) { if (b - a == 1) return *a; // they're consecutive double *c = a + ((b - a) / 2); // c points to middle double left = parallel_max(a, c); double right = parallel_max(c, b); return (left > right) ? left : right; }