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函数中将其打印出来。
答案 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。