0

int* m = 新しい int [d1*d2]; (行*列)

for ( j = 0; j < d2; j++ ){
        largest = new int(0);
        for ( i = j; i < d1*d2; i +=d2){
            if ( *(m+i) > *largest){largest = (m+i);} 

このコードは、列内の最大の要素を見つけます。私がしたいことは、ポインタを使用して列内の最大の要素を再帰的に見つけ続けることです。

次のような列があるとします。

7

6

5

最大の要素 (この場合は 7) を見つけ、最大に格納されます。

今、私は2番目のポインターが欲しいとしましょう

int*ptr2

そして、それを使用して、列に 2 番目に大きい要素、この場合は 6 を格納し、計算します

*最大 + *ptr2

そして、6 と 5 に対して再帰的に実行します (*largest は 6 を保持し、*ptr2 は 5 を保持します)。

*最大 + *ptr2

を使用して、ptr2の初期位置を最大の1つ下の要素に設定しようとしました

ptr2 = 最大 + d2

正しく機能しませんでした。最大の要素が列の一番下にある場合にも問題になる可能性があり、この行は ptr2 を配列外のどこかに設定します。

4

1 に答える 1