Cho ma trận vuông cỡ lẻ (số hàng = số cột = số lẻ). Tính tích các phần tử trên hàng giữa và cột giữa.
Ví dụ
Đầu vào
mat[][] = {{1,2,3}, {4,5,6}, {7,8,9}}
Đầu ra - Tích hàng giữa: 120, Tích cột giữa: 80
Giải thích - Hàng giữa (chỉ số 1): 4×5×6=120. Cột giữa (chỉ số 1): 2×5×8=80.
Đầu vào
mat[][] = {{3,5,0}, {1,2,7}, {9,0,5}}
Đầu ra - Tích hàng giữa: 14, Tích cột giữa: 0
Phương pháp
- Chỉ số giữa = n/2 (chia nguyên)
- Duyệt i từ 0 đến n-1:
- rproduct *= mat[n/2][i] (hàng giữa)
- cproduct *= mat[i][n/2] (cột giữa)
Chương trình mẫu
#include <stdio.h>
#define MAX 3
void product(int mat[][MAX], int n) {
int rproduct = 1, cproduct = 1;
for (int i = 0; i < n; i++) {
rproduct *= mat[n/2][i];
cproduct *= mat[i][n/2];
}
printf("Tích hàng giữa: %d\n", rproduct);
printf("Tích cột giữa: %d\n", cproduct);
}
int main() {
int mat[][MAX] = {{1,2,3}, {4,5,6}, {7,8,9}};
product(mat, MAX);
return 0;
}
Kết quả
Tích hàng giữa: 120 Tích cột giữa: 80