我有一个二维数组,我将它传递给一个函数并更改数组中的值
#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
两次随机重新排列二维数组中的数字。
但是当我尝试编译时有一些错误:
在第1点)
错误C2440:'初始化':无法从'int [3] [7]'转换为'int'
在第2点)
错误C2064:术语不评估为采用1个参数的函数
不确定这些错误是什么以及如何纠正错误。需要一些指导......
我只发布了一些代码。完整代码位于:https://codereview.stackexchange.com/questions/9419/programming-of-3-x-7-trick
答案 0 :(得分:1)
在第22行(int row = 0,
)中,您应该用分号替换逗号。 (由于您没有;
,编译器认为random_rearrange_num(arr)
是一个int声明)
顺便说一下,您的代码是c++
。不是c
。
答案 1 :(得分:0)
我认为你应该写一个main()
函数来调用random_rearrange_num()
。