2013-11-07 3 views
0

Я работаю над программой на C, которая найдет сумму диагональных элементов матрицы. Одна функция в программе должна печатать матрицу, но я не могу ее скомпилировать из-за ошибки, указанной в заголовке. Код функции выглядит следующим образомОшибка сборки C "Ожидаемый int (*) [10], но аргумент имеет тип 'int' '

void print_matrix(int A[10][10], int a) 
     { 
      int i, j ; 
      printf("The matrix entered is\n") ; 
      for (i = 0 ; i < a ; i++) 
       { for (j = 0 ; j < a ; j++) 
        printf("\t%d", A[i][j]) ; 
       } 
     } 

ошибка чтения «ожидаемый" Int (*) [10], но аргумент типа "ИНТ» Я попытался изменить параметр для чтения print_matrix (int (*) [10], int a) и выводится одна и та же ошибка. Использование print_matrix (int A [] [10], int a) также дает ту же ошибку. Мне не удалось найти то, что я делаю неправильно. Любая помощь приветствуется.

ответ

1

Допустим, у вас есть матрица:

int A[10][10] = { ... }; 

Вы должны вызвать функцию так:

print_matrix(A, 10); 
+0

Он работал! Большое спасибо, вы могли бы объяснить, в чем проблема? – user1241223

+1

Я подозреваю, что вы вызывали его так: 'print_matrix (A [10] [10], 10)'. Это попытается получить доступ к целому числу, хранящемуся в (10,10), и передать это как первый параметр. – paddy

+0

А теперь это понятно, спасибо за помощь! – user1241223