Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ผลคูณของแถวกลางและคอลัมน์กลางในเมทริกซ์สี่เหลี่ยมจัตุรัสขนาดคี่ในภาษา C

ได้รับเมทริกซ์สี่เหลี่ยมจัตุรัส mat[row][column] โดย row และ column เท่ากันและเป็นจำนวนคี่ (ไม่หาร 2 ลงตัว) งานคือหาผลคูณของแถวกลางและคอลัมน์กลางของเมทริกซ์นั้น

เช่นในรูปด้านล่าง —

ผลคูณของแถวกลางและคอลัมน์กลางในเมทริกซ์สี่เหลี่ยมจัตุรัสขนาดคี่ในภาษา C

เงื่อนไข

  • เมทริกซ์ต้องเป็นเมทริกซ์สี่เหลี่ยมจัตุรัส
  • คอลัมน์และแถวต้องมีความยาวเป็นจำนวนคี่

ตัวอย่าง

อินพุต

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

เอาต์พุต

ผลคูณของแถวกลาง = 120
ผลคูณของคอลัมน์กลาง = 80

คำอธิบาย

ผลคูณของแถวกลาง = 4 * 5 * 6 = 120
ผลคูณของคอลัมน์กลาง = 2 * 5 * 8 = 80

อินพุต

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

เอาต์พุต

ผลคูณของแถวกลาง = 14
ผลคูณของคอลัมน์กลาง = 0

วิธีการแก้ปัญหา

  • รับเมทริกซ์ mat[][] เป็นอินพุต
  • วนเมทริกซ์จากแถวกลางและคอลัมน์กลาง
  • คำนวณผลคูณของแถวกลางและคอลัมน์กลางและคืนผลลัพธ์

อัลกอริทึม

Start
In function int product(int mat[][MAX], int n)
    Step 1: ประกาศและกำหนด rproduct = 1, cproduct = 1
    Step 2: Loop For i = 0 และ i < n และ i++
        Set rproduct = rproduct * mat[n / 2][i]
        Set cproduct = cproduct * mat[i][n / 2]
    Step 3: Print "ผลคูณของแถวกลาง: rproduct"
    Step 4: Print "ผลคูณของคอลัมน์กลาง: cproduct"
In function int main()
    Step 1: ประกาศและกำหนด mat[][MAX] = {{1,2,3}, {4,5,6}, {7,8,9}}
    Step 2: เรียก product(mat, MAX)
Stop

ตัวอย่างโค้ด

#include <stdio.h>
#define MAX 3

int 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("ผลคูณของแถวกลาง: %d\n", rproduct);
    printf("ผลคูณของคอลัมน์กลาง: %d\n", cproduct);
    return 0;
}

// โค้ดหลัก
int main() {
    int mat[][MAX] = {
        { 1, 2, 3 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
    product(mat, MAX);
    return 0;
}

ผลลัพธ์

หากรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ —

ผลคูณของแถวกลาง: 120
ผลคูณของคอลัมน์กลาง: 80