[英]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.