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

对于第二行,我想要 4 和 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 回答
0

尝试两个内部循环(在第一个内部):

int largest = m[j];
for (i = j + 1; i < d1*d2; i+=d2)
{
   largest = max(largest, m[i]);
}
for (i = j; i < d1*d2; i+=d2)
{
   if (m[i] == largest)
   {
      cout << largest--;
   }
}
于 2013-05-08T14:36:33.470 回答