2013-03-18 94 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