1
我有一個二維(3x7)數組,我想轉換成一維數組,使得我提供的行位於中心。該行的值可能會不一樣,但它必須位於中心。將二維數組轉換爲一維數組(有條件)
#define numRows 3
#define numCols 7
#define TotalNum 21
int arr[numRows-1][numCols-1] =
{ {0,1,2,3,4,5,6}, {7,8,9,10,11,12,13}, {14,15,16,17,18,19,20} };
int stack[TotalNum-1];
stackup(arr,stack,row);
void stackup(int *p,int *s,int &row1)
{
int k =0;
for(int i = 0; i<numRows; i++)
{
for(int j = 0; j<numCols; j++)
{
s[k] = p[i][j];
k++;
}
}
}
功能疊層肯定是錯誤的,需要進行調整,但我不知道如何調整它使得設置該行是在中心時推入堆棧。
那麼,你必須擺脫你的數組聲明中的-1的一件事。 – 2012-02-24 16:43:40
這是爲什麼呢? – lakesh 2012-02-24 16:50:10
因爲'int arr [15];'聲明瞭一個15'int'的數組,所以最後一個容許索引是15的數組並不是一個。 – 2012-02-24 17:06:25