用字符填充矩阵区域

时间:2017-03-08 23:14:42

标签: c++ matrix multidimensional-array vector

我使用2D矢量创建了一个矩阵。我使用的代码是

int RC=50;
vector<vector<int> > matrix;
vector<int>row;
///////////Building Grid//////////////////
for(int i=0;i<RC;i++)
{
    for(int j=0;j<RC;j++)
    {
        row.push_back(0);
    }
    matrix.push_back(row);
}
  //////////Printing Grid///////////////////
for(int i=0;i<RC;i++)
{
    for(int j=0;j<RC;j++)
    {
        cout<<matrix[i][j]<<" ";
    }
    cout<<endl;
}

上述代码的输出是

enter image description here

现在我想要的是通过输入块的左下角位置用'$'或任何字符填充矩阵内的6x6块。例如,如果我将位置设为(10,4),那么我想放置一个'$'(大小为6x6)的块,其左下方的坐标是(10,4)。

EDIT-1

我添加了代码

int si=3;
int sy=3;
 for(int i=0;i<RC;i++)
{
    for(int j=0;j<RC;j++)
    {
       if(i>=si && i<=si+6 && j>=sy && j<=sy+6)
       {
           matrix[i][j]=1;
       }
       else
       {
        matrix[i][j]=0;
       }
    }
}

我得到的输出为

enter image description here

我正在阅读坐标作为左上角的坐标,我应该怎样做才能将坐标读作左下角的坐标并从那里构建块?

1 个答案:

答案 0 :(得分:1)

您需要逻辑地解决问题并分解解决问题所需的步骤。你正盯着一大块零,这不会有所帮助。所以,用伪代码和一张方便,花花公子的纸和铅笔来完成它。

询问有关手头较大问题的小问题。你如何从左下角坐标到你想要开始的坐标?你怎么决定什么时候停下来?我明白我刚刚做了什么吗?如果没有,为什么我不理解?

当你正在学习的时候,宝贝迈步迈步。花些时间来理解为什么某些东西要么以您想要的方式工作,要么无法工作。这样做,你就会成为一个更好的编码器。