Tôi muốn chuyển hai ma trận làm đối số. Những ma trận này có kích thước khác nhau và tôi không hiểu cách tôi phải thực hiện công việc này:Truyền ma trận làm đối số
#include <stdio.h>
#include <stdlib.h>
void f(int m[3][], int n);
int main()
{
int A[3][3]={{1,2,3},{4,5, 6},{7,8,9}};
int B[3][2]={{1,2},{3, 4}, {5, 6}};
f(A, 3);
f(B, 2);
return 0;
}
void f(int m[3][], int n)
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<n;j++)
printf("%5d", m[i][j]);
}
return;
}
Làm cách nào để thực hiện việc này?
Điều gì không hoạt động? Bạn đang nhận được một lỗi biên dịch thời gian? –
Bạn đang sử dụng [C89] (http://en.wikipedia.org/wiki/C89_ (C_version) # C89), [C99] (http://en.wikipedia.org/wiki/C99) hoặc một số trình biên dịch phương ngữ đặc thù của C? Có những khác biệt trong cách mà bạn có thể chuyển đối số ma trận cho hàm, tùy thuộc vào phiên bản ngôn ngữ mà trình biên dịch của bạn được cấu hình để chấp nhận. –
@HunterMcMillen yes main.c | 5 | error: loại mảng có loại phần tử không đầy đủ /main.c|12|error: loại thông số chính thức 1 chưa hoàn thành – Nick