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 に答える