我需要检查一个二维数组是否以降序排列。C:检查一个二维数组是否以降序排列,不包括0
我写了一个灵魂,但不满意它。 这是我工作的代码:
bool sorted(void)
{
int prev = board[0][0];
int counter = 0;
for (int i = 0; i < d; i++){
for (int j = 0; j < d; j++){
if (board[i][j] < prev){
return false;
}
prev = board[i][j];
counter++;
if (counter == d * d - 1){
return true;
}
}
}
return true;
}
我正在寻找一种方法只使用条件句,没有一个计数器。这是我试过的:
bool sorted(void)
{
int prev = board[0][0];
for (int i = 0; i < d; i++){
for (int j = 0; j < d; j++){
if (board[i][j] < prev && board[i][j] != 0){
return false;
}
prev = board[i][j];
}
}
return true;
}
这是行不通的。假设数组进行排序,不
&& board[i][j] != 0
只要最后一个元素被选中,我拿假的,因为0 < 1.
我几乎摧残了我的头。 你能提出一些想法吗?谢谢!
这看起来并不像JavaScript。 –
对不起。我和JS一起工作了很多,并且不小心将它放在这里:D这是C. – nkom
将展现问题的[最小化,**完整**,可验证示例](http://stackoverflow.com/help/mcve)放在一起。 [像这样的东西](http://ideone.com/bJdCWe),但实际上做你要求的东西,并使用*作为你的问题代码的例子。 – WhozCraig