2013-03-18 91 views
0

程序應該輸出12×24與所有的外線輸出0和裏面的人輸出網格創建boundry 1如何圍繞網格

這就是我試圖以獲得第一列和行輸出0:

#include <iostream> 

using namespace std; 
#define N 24 
// print: 
// 
// Prints the simulation matrix M as spaces, *'s, and T's. 
// 
void print(int M[][N], int ROWS, int COLS) 
{ 
// YOU MUST IMPLEMENT THIS: 
} 
// 
// fill: 
// 
// Fills the simulation matrix such that the boundary rows 
// and columns are empty, the internal area is all trees, 
// and one tree is burning at index position (row, col). 
// 
void fill(int M[][N], int ROWS, int COLS, int row, int col) 
{ 
// YOU MUST IMPLEMENT THIS: 

// 
// main: 
}// 
int main() 
{ 
int M[N/2][N]; 
int ROWS, COLS; 
int r, c; 
ROWS = sizeof(M)/sizeof(M[0]); 
COLS = sizeof(M[0])/sizeof(M[0][0]); 
fill(M, ROWS, COLS, 1, 1); 
for(r=0; r< ROWS; r++) 
{ 
for(c=0; c< COLS; c++) 
{ 
    if(ROWS>1) 
    { 
    M[ROWS][COLS]=1; 
    cout<< M[ROWS][COLS]; 
    } 
    else 
    { 

    M[ROWS][COLS]=0; 
    cout<< M[ROWS][COLS]; 
} 
} 
cout<< endl; 
} 

print(M, ROWS, COLS); 
return 0; 
} 

這怎麼辦?

+0

你的老師希望你輸出一個網格。你爲什麼使用2-dim陣列? – harper 2013-03-18 05:03:38

回答

1

首先,問問自己:「我將如何創建一個盒子?」要創建一個框,您需要4邊然而一個可以是最簡單的框包括兩行,因爲我們可以採取框的高度是零 - 或無窮。在代碼中,您至少需要2行來創建一個框。

像這樣:

000000000000000 
000000000000000 

但是,它有沒有高度。換句話說,這是一個零高度邊框。

因此,要創建這樣一個對話框:

000000000000000 
011111111111110 
000000000000000 

你注意到什麼? 第一行和最後一行都是零。 ,中間行的第一個和最後一個元素是零,一切都在該行其他是1

進一步擴展:

000000000000000 
011111111111110 
011111111111110 
000000000000000 

我們看到了同樣的模式 - 所以這可以擴展到第n行的情況。因此,該算法是:

  1. 第一行和最後一行都是零。
  2. 對於所有其他行,這些行的第一個和最後一欄全爲0。
  3. 所有事情都設置爲1。

因此,你的情況:

for(r=0; r< ROWS; r++) 
{ 
    for(c=0; c < COLS; c++) 
    { 
     if (r == 0 || r == ROWS - 1) { 
      M[r][c]=0; 
     } 
     else if(c == 0 || c == COLS -1) { 
      M[r][c]=0; 
     } 
     else { 
      M[r][c]=1; 
     } 
     cout<< M[r][c]; 
    } 
    cout << endl; 
} 
+0

這些分配是不是M [r] [c]? – Arun 2013-03-18 05:16:46

+0

我忘了問的唯一事情是M [1] [1]的點是如何變成2的,因爲那是程序的整個點,它開始改變這個點的值 – polishusar 2013-03-18 05:17:05

+0

你是對的,@ArunSaha。謝謝!我逐字複製了OP的代碼。編輯。 – jrd1 2013-03-18 05:18:57