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
答案 0 :(得分: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];
}
}
答案 1 :(得分: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--;
}
}