0

(在 c 编程中)如果您不介意,我还有另一个索引问题。

我使用此函数来查找整数数组中的最大数:

int Find_max(int *array,int n){
    if(n==1) return array[0];
    int num1=Find_max(array,n/2);
    int num2=Find_max(array+n/2,n-n/2);
    if(num1>num2) return num1;
    return num2;
}

如何获取我找到的号码的索引?我不允许使用任何类型的循环。

4

1 回答 1

4

几乎相同的代码(保留样式):

int Find_max_index(int *array,int n){
    if(n==1) return 0;
    int index1=Find_max_index(array,n/2);
    int index2=n/2+Find_max_index(array+n/2,n-n/2);
    if(array[index1]>array[index2]) return index1;
    return index2;
}
于 2013-01-25T22:25:48.497 回答