int * to int无效转换

时间:2012-11-29 01:36:25

标签: c++ arrays

尝试使用1d和2d阵列为分配制作骰子,以便为CS分配并遇到问题

到目前为止我所拥有的是(是的,我知道布尔结构很糟糕):

  #include <iostream>
  #include <ctime>
  #include <cstdlib>
  #include <iomanip>

  using namespace std;

  int main()
  {
int g[5][5] = {{}};
int d[11] = {};

int die1;
int die2;

srand(time(0));

for ( int roll = 1; roll <= 36000; ++roll )
{
    die1 = 1 + rand() % 6;
    die2 = 1 + rand() % 6;

    if (die1 == 1 && (die2 == 1))
        g[0][0] += 1;

    if (die1 == 1 && die2 == 2)
        g[0][1] += 1;

    if (die1 == 1 && die2 == 3)
        g[0][2] += 1;

    if (die1 == 1 && die2 == 4)
        g[0][3] += 1;

    if (die1 == 1 && die2 == 5)
        g[0][4] += 1;

    if (die1 == 1 && die2 == 6)
        g[0][5] += 1;


    if (die1 == 2 && die2 == 1)
        g[1][0] += 1;

    if (die1 == 2 && die2 == 2)
        g[1][1] += 1;

    if (die1 == 2 && die2 == 3)
        g[1][2] += 1;

    if (die1 == 2 && die2 == 4)
        g[1][3] += 1;

    if (die1 == 2 && die2 == 5)
        g[1][4] += 1;

    if (die1 == 2 && die2 == 6)
        g[1][5] += 1;


    if (die1 == 3 && die2 == 1)
        g[2][0] += 1;

    if (die1 == 3 && die2 == 2)
        g[2][1] += 1;

    if (die1 == 3 && die2 == 3)
        g[2][2] += 1;

    if (die1 == 3 && die2 == 4)
        g[2][3] += 1;

    if (die1 == 3 && die2 == 5)
        g[2][4] += 1;

    if (die1 == 3 && die2 == 6)
        g[2][5] += 1;


    if (die1 == 4 && die2 == 1)
        g[3][0] += 1;

    if (die1 == 4 && die2 == 2)
        g[3][1] += 1;

    if (die1 == 4 && die2 == 3)
        g[3][2] += 1;

    if (die1 == 4 && die2 == 4)
        g[3][3] += 1;

    if (die1 == 4 && die2 == 5)
        g[3][4] += 1;

    if (die1 == 4 && die2 == 6)
        g[3][5] += 1;


    if (die1 == 5 && die2 == 1)
        g[4][0] += 1;

    if (die1 == 5 && die2 == 2)
        g[4][1] += 1;

    if (die1 == 5 && die2 == 3)
        g[4][2] += 1;

    if (die1 == 5 && die2 == 4)
        g[4][3] += 1;

    if (die1 == 5 && die2 == 5)
        g[4][4] += 1;

    if (die1 == 5 && die2 == 6)
        g[4][5] += 1;


    if (die1 == 6 && die2 == 1)
        g[5][0] += 1;

    if (die1 == 6 && die2 == 2)
        g[5][1] += 1;

    if (die1 == 6 && die2 == 3)
        g[5][2] += 1;

    if (die1 == 6 && die2 == 4)
        g[5][3] += 1;

    if (die1 == 6 && die2 == 5)
        g[5][4] += 1;

    if (die1 == 6 && die2 == 6)
        g[5][5] += 1;
}

d[1] = g[0][0];
d[2] = g[1][0] + g[0][1];
d[3] = g[2][0] + g[0][2] + g[1][1];
d[4] = g[3]{0} + g[0][3] + g[1][2] + g[2][1];
d[5] = g[4][0] + g[0][4] + g[2][2] + g[3][1] + g[1][3];
d[6] = g[5][0] + g[0][5] + g[4][1] + g[1][4] + g[3][2] + g[2][3];

试图用gnu进行编译,并在它开始的地方得到了这个错误d [4] = ...在底部。

    error: invalid conversion from int* to int [-fpermissive]

任何帮助将不胜感激,我真的需要完成这项任务...... Thx

1 个答案:

答案 0 :(得分:4)

这可能是拼写错误但是下一行中的括号是否正确(为清晰起见加粗)?

  

d [4] = g [3] {0} + g [0] [3] + g [1] [2] + g [2] [1];

该行应该是吗?

  

d [4] = g [3] [0] + g [0] [3] + g [1] [2] + g [2] [1];