Почему выводит только первую строку а остальные что-то непонятное?
int print_arr(int str, int stlb, int matr[][stlb]){
...
}
int mass[10][10];
...
print_arr(N, L, &mass[k][i]);
Здесь две ошибки:
- во-первых ты пообещал, что передашь в print_arr массив, последняя размерность которого равна второму параметру функции, а передаёшь массив, вторая размерность которого равна 10 и никак от второго параметра не зависит
- во-вторых вместо массива ты передаёшь адрес элемента, который ты даже не заполнил.
Если уж ты решил использовать VLA, то делай это последовательно, например так:
int main()
{
int L = 0, N = 0, k, i;
scanf("%d", &N);
L=N;
int mass[N][L];
for(k = 0; k < N; k++){
printf("[%d]\n", k);
for(i = 0; i < L; i++){
scanf("%d", &mass[k][i]);
}
}
printf("matrix NxN\n");
print_arr(N, L, mass);
return 0;
}