![](/img/trans.png)
[英]how do i sort my character array in ascending order based on the same array with its int value?
[英]How do I check to see if my array is in ascending order?
因此,我有一個數組board [] [],其值不斷變化。 它是尺寸為d * d的正方形陣列。 我想檢查數組以查看其所有值是否都按升序排列。
for (int i = 0; i < d; i++)
{
for (int j = 0; i < d; i++)
{
if (board[i][j] == (d * i) + j + 1)
{
return true;
}
else
{
return false;
}
}
}
問題是,一旦數組board [0] [0] = 1中的第一個元素,它就返回true,並結束我的代碼。 我不知道如何實現它,以便在數組中的所有元素從1到(d * d-1)升序排列之前,它不會返回true。
謝謝!
如果我正確理解了您的問題,我認為您想這樣做:
int Previous = board[0][0];
for (int i = 0; i < d; i++)
{
for (int j = 0; j < d; j++)
{
if (board[i][j] < Previous)
{
return false;
}
Previous = board[i][j];
}
}
return true; // Only at the end do we know that all elements are in ascending order
您所遇到的問題是:
board
值與指標而不是其他board
值進行比較 這應該工作
for (int i = 0; i < d; i++)
{
for (int j = 0; j < d; j++)
{
if (board[i][j] != (d * i) + j + 1)
{
return false;
}
}
}
return true;
嘗試更換return true
有continue
:
for (int i = 0; i < d; i++)
{
for (int j = 0; i < d; i++)
{
if (board[i][j] == (d * i) + j + 1)
{
continue;
}
else
{
return false;
}
}
}
如果您反轉條件,也可以完全刪除繼續子句:
if (board[i][j] != (d * i) + j + 1)
{
return false;
}
1)首先,您要通過升序來表示(垂直,水平還是對角線?)2)替換if語句if((board [i] [j]> board [i] [j + 1])||(board [ i] [j]>董事會[i + 1] [j]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.