Получите первый col в матрице

#c #matrix

#c #матрица

Вопрос:

У меня есть простая программа, которая получает сумму главных и антидиагоналей матрицы. А затем он получает сумму первого и последнего столбцов матрицы.Например:

 1 2 3 4 5 6 --gt; The matrix 7 8 9  md = 1   5   9 = 15 ad = 7   5   3 = 15 lastCol = 3   6   9 = 18 firstCol = 1   4   7 = 12  

Как я могу получить сумму первого числа квадратной матрицы ?
Вот мой код:

 int main(){  int n;  scanf("%d",amp;n);  int i,j,a[n][n],firstCol=0,lastCol=0,md=0,ad=0;  for(i = 0;i lt;n;i  ){  for(j=0;jlt;n;j  ){  scanf("%d",amp;a[i][j]);  }  }  for(i = 0;i lt;n;i  ){  for(j=0;jlt;n;j  ){  if(i==j){  md =a[i][j];  }  if(i j==n-1){  ad =a[i][j];  }  }  }  for(i=0;ilt;n;i  ){  lastCol =a[i][n-1];  } }  

Ответ №1:

 for (i = 0; i lt; n; i   ) {  firstCol  = a[i][0]; }  

Ответ №2:

Используйте функции. Постарайтесь сделать их немного более универсальными. Этот параметр вернет сумму первого столбца массива любого размера.

 long long int sumFirstCol(size_t rows, size_t cols, int (*array)[cols]) {  long long int result = 0;  if(array amp;amp; rows amp;amp; cols)  {  for(size_t row = 0; row lt; rows; row  )  {  result  = array[row][0];  }  }  return result; }  int main(void) {  int matrix[3][3] = {  {1, 2, 3},  {4, 5, 6},  {7, 8, 9},};   printf("%lldn", sumFirstCol(3, 3, matrix)); }