如何打印在C函数main中初始化的2D数组?

时间:2018-12-12 03:30:48

标签: c function multidimensional-array printf 2d

void print2DArray(int aRRay[][COLS], int r, int c);
int main()
{
    int aRRay[ROWS][COLS];
    int n;

    int r, c;
    srand(time(NULL));
    for (r = 0; r < ROWS; r++)
    {
        for (c = 0; c < COLS; c++)
        {
            aRRay[r][c] = -40 + rand() % (80 + 1 - (-40));
        }
    }

print2DArray(aRRay[r][c], r, c);

printf("Enter an integer between -40 and 80: \n");
scanf("%d", &n);
while (n >= 40 || n <= -80)
{
    printf("Thie is an invalid integer, please re-enter an integer between 
     -80 and 40");
    scanf("%d", &n);
}

return 0;
}
void print2DArray(int aRRay[][COLS], int r, int c) 
statement
{
int j, k;
for (j = 0; j < ROWS; j++)
{
    for (k = 0; k < COLS; k++)
    {
        printf("%d ", aRRay[r][c]);
    }
    printf("\n");
}
}

如何打印出在C函数main中初始化的2D数组? 如何使该功能正常工作?我应该使用随机数生成器为2D数组创建数字,然后在void函数中将其打印出来。

2 个答案:

答案 0 :(得分:0)

最后一次使用{printf("%d ", aRRay[j][k]); }代替var gKey = 1; var pKey = 1; var game = (from g in gamesplayers where g.key == gKey).FirstOrDefault(); var playerinfo = (from p in game where p.key == pKey).FirstOrDefault(); playerinfo[pKey].Value.status = "status"; 。因为您正在执行循环,但没有使用循环来执行任何操作,所以请使用j和k来循环执行printf。希望对您有帮助!

答案 1 :(得分:0)

  

如何打印2D阵列...?

OP的代码不正确:

// printf("%d ", aRRay[r][c]);
printf("%d ", aRRay[j][k]);

如何初始化/分配不是很重要。首先将尺寸传递给print函数,然后传递给数组。

最好将数组尺寸键入为size_t,而不是int

// C99 solution using a variable length array

void print2DArray(size_t rows, size_t cols, int aRRay[rows][cols]) {
  for (size_t r = 0; r < rows; r++) {
    for (size_t c = 0; c < cols; c++) {
      printf("%d ", aRRay[r][c]);
    }
    printf("\n");
  }
}

样品使用

#define ROWS 6
#define COLS 7

int main() {
  int aRRay[ROWS][COLS];
  size_t r, c;
  int n = 0;
  for (r = 0; r < ROWS; r++) {
    for (c = 0; c < COLS; c++) {
      aRRay[r][c] = ++n;
    }
  }
  print2DArray(ROWS, COLS, aRRay);
  int bRRay[2][3] = {{11,12,13}, {14,15,16}};
  print2DArray(2,3, bRRay);
}

输出

1 2 3 4 5 6 7 
8 9 10 11 12 13 14 
15 16 17 18 19 20 21 
22 23 24 25 26 27 28 
29 30 31 32 33 34 35 
36 37 38 39 40 41 42 
11 12 13 
14 15 16 

OP具有“我应该使用随机数生成器为我的2D数组创建数字”,这很好。上面使用++n是为了更说明问题。

另请参阅Passing a multidimensional variable length array to a function