Ваш слегка измененный код может выглядеть так:
#include <stdio.h>
#include <math.h>
// a: array pointer, m: # of rows, n: # of columns
void printMatrixRowMajor(int *a, int m, int n) {
printf("Matrix row major fashion:\n");
for (int y = 0; y < m; y++) {
for (int x = 0; x < n; x++) {
printf("%d ", *(a + (y * n) + x));
}
printf("\n");
}
}
int main() {
int x[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
printMatrixRowMajor(x, 3, 4);
return 0;
}
Изменения
- в основном определены некоторые матричные данные
- вызывается printMatrixRowMajor (не printf указателя функции)
- две индексные переменные используются для обхода матричных элементов в printMatrixRowMajor
- Размеры матрицы используются для посещения элементов матрицы
- принята основная функция подписи
- возвращение 0 добавлено на главную
Вывод на консоль
Если вы запустите программу, она выдаст на консоли следующий вывод:
Matrix row major fashion:
1 2 3 4
5 6 7 8
9 10 11 12