C - 输入一系列1s和0s.然后自动分配给2D数组中的相应位置

C++ - input a series of 1s and 0s. Then automatically assign to the corresponding position in a 2D array

本文关键字:数组 2D 位置 分配 一系列 输入 1s 然后 0s      更新时间:2023-10-16

我正在编写硬币翻转程序,我希望用户输入一系列数字,如下

1.输入2个数字x和y作为行的数量和列数(完成)

2.用1(head)和2(尾巴)输入硬币的初始状态如下:

1010
1111
0000

3.将步骤2的输入输入,并将1s和0分配给2D数组中的相应位置,如下

1(grid[0][0])0(grid[0][1])...
1(grid[1][0])1{grid[1][1])...
...

对于3,可以这样做吗?我现在所做的就是要求用户输入数字1 x 1时,如以下代码所示。

for(int x=0;x<rows;x++)
{
    for(int y=0;y<columns;y++)
    {
        cin >> grid[x][y];
    }
}

是否可以使用" char.at()"或任何其他建议读取1s和0s的位置?

您可以做这样的事情:

int grid[10][10];
for (int x=0; x<10; ++x)
{
    std::string s;
    std::cin>>s;
    ///check for string correctness here
    for(int y=0; y<10;++y)
    {
        grid[x][y]=s[y]-'0';
    }
}
for (int x=0; x<10; ++x)
{
    for(int y=0; y<10;++y)
    {
        std::cout<<grid[x][y];
    }
    std::cout<<"n";
}

基本上,您从输入e中读取X字符串,然后由char char。您还可以只读一个字符串,如果需要,则可以读取长度= x*y。