繁体   English   中英

将二维数组传递给函数并更改其中的值

[英]Passing an 2-dimensional array to function and changing the values in it

我有一个二维数组,我将其传递给函数并更改数组中的值

#define numRows 3
#define numCols 7
#define TotalNum (numRows*numCols)

int arr[numRows][numCols] = {{0,1,2,3,4,5,6}, {7,8,9,10,11,12,13},{14,15,16,17,18,19,20}};

1) random_rearrange_num(arr);

2) random_rearrange_num(arr);

void random_rearrange_num(int p[][numCols])
{
  int temp = 0,k= 0,l = 0;
  for(int i = numRows -1 ; i > 0 ; i--)
  {
    for (int j = numCols-1;j>0; j--)
    {
          k = 0 + rand()/(RAND_MAX/(2-0+1)+1);
          l= 0 + rand()/(RAND_MAX/(6-0+1)+1);
          temp = p[i][j]; 
          p[i][j] = p[k][l];
          p[k][l] = temp;
    }
  }
}

基本上,我要两次调用random_rearrange_num来随机重排random_rearrange_num数组中的数字。

但是当我尝试编译时有一些错误:

在第1点)

错误C2440:“正在初始化”:无法从“ int [3] [7]”转换为“ int”

在第2点)

错误C2064:术语未求值为带有1个参数的函数

不知道这些错误是什么以及如何纠正它们。 需要一些指导...

我只发布了一些代码。 完整的代码在这里: https : //codereview.stackexchange.com/questions/9419/programming-of-3-x-7-trick

在第22 int row = 0,int row = 0, )中,您应该用分号代替逗号。 (因为您没有; ,所以编译器认为random_rearrange_num(arr)是一个int声明)

顺便说一句,您的代码是c++ 不是c

我认为您应该编写main()函数来调用random_rearrange_num()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM