0

我正在寻找更改我在这里找到的游戏 TOH 的代码

我想让它询问有多少磁盘...然后如果输入 3。然后我会将代码中所有数组的 [8] 更改为 [3]。还是有更好的方法?

我正在研究并发现这一点,但它在二维数组中不起作用。

我如何在这里使用向量..将行 [8] 更改为用户输入..

struct World{

   int t[3][8];
   int cursor;
   int chosen;

};

我的 int main 是在哪里询问“多少行......”?

4

1 回答 1

1

改用 a std::vector<std::vector<int>>。这会自动处理动态分配。

例如:

#include <iostream>
#include <vector>

int main()
{
    //
    // *** Validation of input omitted: you must do this. ***
    //
    size_t rows;
    std::cout << "Enter number of rows: ";
    std::cin >> rows;

    std::cout << "Enter number of columns: ";
    size_t columns;
    std::cin >> columns;

    std::vector<std::vector<int> > ints(rows, std::vector<int>(columns));

    for (size_t ri = 0; ri < rows; ri++)
    {
        for (size_t ci = 0; ci < columns; ci++)
        {
            std::cout << "Enter value for [" << ri << ", " << ci << "]: ";
            std::cin >> ints[ri][ci];
        }
    }

    for (size_t ri = 0; ri < ints.size(); ri++)
    {
        for (size_t ci = 0, size = ints[ri].size(); ci < size; ci++)
        {
            std::cout << "["
                      << ri
                      << ", "
                      << ci
                      << "]="
                      << ints[ri][ci]
                      << "\n";
        }
    }

    return 0;
}
于 2012-09-13T11:48:32.570 回答