0
int* m = new int [d1*d2];

これは私の配列です。

 for ( j = 0; j < d2; j++ )
{       for ( i = j; i < d1*d2; i +=d2){
         cout << *(m+i);
       }
  cout << endl;
}

そして、それを使用して、多次元配列と考えると、各列の最大の整数をグループ化して出力できます。

やりたいことを説明するのは難しい。例を挙げてみます。

入力が 1 4 2 5 2 1 0 3 4 であると仮定します。

出力は次のようになります

1 5 0

4 2 3

2 1 4

最大の整数のみが必要で、その整数の背後にある次の最大の整数をリストし続けます。

最初の行には 5, 0 のみが必要です

2 行目には 4 と 3 が必要です。

3 行目は 4 つだけが必要です。

出力は次のようになります。

5、0、4、3、4

4

2 に答える 2

1

行が含まれている場合a[]、必要なものは次のようになります。

int i = column_count - 1;
deque<int> largests_list;
largests_list.push_front(a[i]);
int largest_found = a[i];

while (i-- > 0) {
    if (a[i] > largest_found) {
       largests_list.push_front(a[i]);
       largest_found = a[i];   
    }
}
于 2013-05-08T15:11:53.777 に答える