Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tích của hàng và cột ở giữa trong ma trận vuông lẻ trong C


Cho một ma trận vuông, mat [row] [column] trong đó hàng và cột bằng nhau và có độ dài lẻ có nghĩa là số hàng và cột phải là số lẻ, tức là không chia hết cho 2, nhiệm vụ là tìm tích của hàng giữa và cột giữa của ma trận đó.

Như trong hình bên dưới -

Tích của hàng và cột ở giữa trong ma trận vuông lẻ trong C

Ràng buộc

  • Ma trận phải là ma trận vuông.

  • Cột và hàng phải có độ dài lẻ.

Đầu vào

mat[][] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}}

Đầu ra

Product of middle row = 120
Product of middle column = 80

Giải thích

Product of middle row = 4 * 5 * 6 = 120
Product of middle column = 2 * 5 * 8 = 80

Đầu vào

mat[][] = {{3, 5, 0},
{1, 2, 7},
{9, 0, 5}}

Đầu ra

Product of middle row = 14
Product of middle column = 0

Giải thích

Product of middle row = 1 * 2 * 7 = 120
Product of middle column = 5 * 2 * 0 = 0

Phương pháp được sử dụng dưới đây như sau để giải quyết vấn đề

  • Lấy một mat ma trận [] [] làm đầu vào.

  • Duyệt ma trận từ hàng giữa và cột giữa

  • Tính tích của hàng giữa và cột giữa và trả về kết quả.

Thuật toán

Start
In function int product(int mat[][MAX], int n)
   Step 1→ Declare and initialize rproduct = 1, cproduct = 1
   Step 2→ Loop For i = 0 and i < n and i++
      Set rproduct = rproduct * mat[n / 2][i]
      Set cproduct = cproduct * mat[i][n / 2]
   Step 3→ Print "Product of middle row: rproduct “
   Step 4→ Print "Product of middle column: cproduct”
In function int main()
   Step 1→ Declare and initialize mat[][MAX] {
      { 1, 2, 3 },
      { 4, 5, 6 },
      { 7, 8, 9 } }
   Step 2→ Call product(mat, MAX)
Stop

Ví dụ

#include <stdio.h>
#define MAX 3
int product(int mat[][MAX], int n){
   int rproduct = 1, cproduct = 1;
   //We will only check the middle elements and
   //find their products
   for (int i = 0; i < n; i++) {
      rproduct *= mat[n / 2][i];
      cproduct *= mat[i][n / 2];
   }
   // Printing the result
   printf("Product of middle row: %d\n", rproduct);
   printf("Product of middle column: %d\n", cproduct);
   return 0;
}
// Driver code
int main(){
   int mat[][MAX] = {
      { 1, 2, 3 },
      { 4, 5, 6 },
      { 7, 8, 9 } };
   product(mat, MAX);
   return 0;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Product of middle row: 120
Product of middle column: 80