Как распечатать двумерный массив ...?
Код OP неверен:
// printf("%d ", aRRay[r][c]);
printf("%d ", aRRay[j][k]);
Как это инициализируется / назначается, не такважный.Сначала передайте размеры функции печати, а затем массиву.
Размеры массива лучше всего набирать как 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
У ОП было "Я должен использовать генератор случайных чисел для создания чисел для моего двумерного массива", что нормально.Выше приведено использование ++n
, поскольку оно более наглядно.
См. Также Передача многомерного массива переменной длины в функцию .