#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)); }