【问题标题】:filling an area of a matrix with characters用字符填充矩阵的一个区域
【发布时间】:2017-07-29 18:05:28
【问题描述】:

我使用二维向量创建了一个矩阵。我使用的代码是

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;
}

上面代码的输出是

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

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;
       }
    }
}

我得到了输出

我正在读取左上角的坐标,我应该怎么做才能读取左下角​​的坐标并从那里构建块?

【问题讨论】:

  • 那么,您的问题到底是什么?你刚刚描述了你打算做什么。
  • 对不起,刚刚更新了问题
  • i - 6 开始迭代行而不是i(假设i 正在遍历行,j 是列)。应该可以的,不是吗?

标签: c++ matrix multidimensional-array vector


【解决方案1】:

您需要从逻辑上解决问题并分解解决问题所需的步骤。你盯着一大块零,这无济于事。所以,用伪代码和一张方便的、漂亮的纸和铅笔来完成它。

就手头的大问题提出小问题。你如何从左下坐标到你想开始的坐标?你如何确定何时停止?我明白我刚刚做了什么吗?如果不是,为什么我不明白?

在您学习的过程中一步一步地进行。花点时间了解为什么某些事情要么按你想要的方式工作,要么没有工作。这样做,您将成为更好的编码员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多