回复 10楼 wp231957
这个代码我看懂了,但是我发现前提还是main函数里面存在了一个定义好的数组,test函数的作用是把这个数组里的数换个位置,然后我一直想知道的是,假如main函数里的数组是没有定义的,然后是否可以创个函数,把main函数里的数组定义了。。(我还是个菜鸟,说的可能很难理解,不好理解的话就算了,我干脆不用函数了)下面是我现在的代码,也许看了就明白我的意思了
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int shuzu(int *);
int main(void){
int g[4][4], i, j; (这个数组g是空的,我没定义)
shuzu(&g[0][0]);
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d\n", g[i][j]);
}
}
}
int shuzu(int * q,int len ){
int i, j, k, l, m = 0, p = 0, n = 0, z, x, a[4][4], b[8] = { 0 };
srand(time(NULL));
for (k = 0; k < 8; k++)
{
b[k] = rand() % 30 + 1;
int jihao = 1;
while (jihao == 1){
for (l = 0; l < k; l++)
{
if (b[k] == b[l])
break;
}
if (l < k)
{
b[k] = rand() % 9 + 1;
}
if (l == k)
jihao = 0;
}
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < 4; j++)
{
a[i][j] = b[m];
m = m + 1;
}
}
for (i = 2; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
a[i][j] = b[n];
n = n + 1;
}
} (这里得到了一个4*4的二维数组,我想把这个数组放到main函数里的g里用)
(之所以用函数主要是因为这里用了太多字母了,全放到main函数里看着麻烦)
*q = a[i][j];
return 0;
}