【问题标题】:Unable to fill in 10x10 array with for-loops无法用 for 循环填充 10x10 数组
【发布时间】:2019-01-12 07:30:50
【问题描述】:

我试图让这个程序打印出一个 10 x 10 的板,其中包含从 4 x 4 数组中随机抽取的值。

所有行的长度应为 10 个条目;出于某种原因,有些行是 7 和 10 个条目。其他时候,他们每个人正好有 10 个,但往往没有一个或多个是短的。只是想弄清楚如何让这个东西每次打印出 10 行和列。编码新手。


iostream, cstdlib, string, math.h, time.h

using namespace std;

int main()
{

srand(time(NULL));

string worldMap[10][10];

string envir[4][4] = { {"S1", "S2", "S3", "S4"}, {"P1", "P2", "P3", "P4"},
               {"F1", "F2", "F3", "F4"}, {"D1", "D2", "D3", "D4"} };

for (int i = 0; i < 10; i++)
{   
    for (int j = 0; j < 10; j++)
    {

        int cat = rand()%4+1;
        int subcat = rand()%4+1;
        worldMap[i][j] = envir[cat][subcat];
        cout<<worldMap[i][j];
    }
    cout<<endl;
}
 return 0;
}

【问题讨论】:

  • 只使用rand()%4,不使用+1。

标签: c++ arrays loops


【解决方案1】:

C++ 使用从零开始的索引,您编写了rand()%4+1,它创建了一个 1-4 范围内的数字并将其用作索引。

这应该只是rand()%4

【讨论】:

  • @psi 我注意到我们最近有不喜欢看到简单问题得到回答的反对者。对于问题和答案。
  • 这不符合准则。让问题变得贫乏,但答案是正确的!但是,您可能需要指出错误发生的确切位置(尝试访问 'envir[cat][4]' 时)以使其非常清楚
  • @JVApen 这太可怕了。这个网站上有一些不愉快的精英主义。
  • @john 我同意,幸运的是我有足够的声誉,不会在它发生时太在意。也许我应该把它发布到 Meta 上来讨论一下
猜你喜欢
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2011-09-14
相关资源
最近更新 更多