กำหนดเมทริกซ์สี่เหลี่ยมจัตุรัส 2 มิติเป็นอินพุต เป้าหมายคือการค้นหาองค์ประกอบที่เหมือนกันทั้งในเส้นทแยงมุมหลักและเส้นทแยงมุม หากเมทริกซ์อินพุตคือ
1 2 3 2 2 4 1 4 7
จากนั้นเส้นทแยงมุมปฐมภูมิคือ 1 2 7 และเส้นทแยงมุมรองคือ 3 2 1 องค์ประกอบทั่วไปคือ 2
จะมีองค์ประกอบร่วมกันอย่างน้อยหนึ่งองค์ประกอบในทั้งสองเสมอ
ตัวอย่าง
ป้อนข้อมูล − เมทริกซ์[][5] ={{1, 2, 1}, {4, 1, 6}, {1, 8, 1}};
ผลผลิต − องค์ประกอบทั่วไปเรียงแถวในแนวทแยง:3
คำอธิบาย − เมทริกซ์คือ:
1 2 1 4 1 6 1 8 1
เส้นทแยงมุมหลัก=1 1 1 เส้นทแยงมุมรอง=1 1 1
ทั้ง 3 ค่าเป็นค่าทั่วไป นับ=3
ป้อนข้อมูล − เมทริกซ์[][5] ={{1, 4, 4, 1}, {3, 4, 4, 6}, {1, 1, 1, 4}, {1, 9, 9, 2}};
ผลผลิต − องค์ประกอบทั่วไปเรียงแถวในแนวทแยง:3
คำอธิบาย − เมทริกซ์คือ:
1 4 4 1 3 4 4 6 1 1 1 4 1 9 9 2
เส้นทแยงมุมปฐมภูมิ=1 4 1 2 เส้นทแยงรอง=1 4 1 1
3 ค่าแรกคือค่าทั่วไป นับ=3
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
ในแนวทางนี้ ก่อนอื่นเราจะสำรวจเมทริกซ์สี่เหลี่ยมตามแถวจากแถว 0 ก่อน สำหรับแต่ละแถวให้ตรวจสอบว่าองค์ประกอบ M[ i ][ i ] เท่ากับ M[ i ][ size-i-1 ] หรือไม่ ถ้าใช่ แสดงว่าองค์ประกอบทั่วไปของเส้นทแยงมุมทั้งสองข้าง ให้นับการเพิ่มขึ้น
-
รับเมทริกซ์อินพุต เมทริกซ์[][5].
-
กำหนดขนาด
-
ฟังก์ชัน countElement(int mt[][5], int size) ใช้เมทริกซ์อินพุตและขนาดของมัน แล้วคืนค่าการนับของค่าทั่วไปทั้งในแนวทแยงหลักและรอง
-
นับเริ่มต้นเป็น 0
-
เคลื่อนที่โดยใช้ for loop จาก i=0 ถึง i
-
ถ้า mt[i][i] ==mt[i][size-i-1] ให้นับจำนวนที่เพิ่มขึ้น
-
เมื่อสิ้นสุดผลตอบแทนนับเป็นผลลัพธ์
-
พิมพ์ผลลัพธ์ในหลัก
ตัวอย่าง
#include <iostream> using namespace std; int countElement(int mt[][5], int size){ int count = 0; for (int i=0;i<size;i++){ if (mt[i][i] == mt[i][size-i-1]){ count=count+1; } } return count; } int main(){ int Matrix[][5] = {{1, 2, 1}, {4, 1, 6}, {1, 8, 1}}; int size=3; cout<<"Row-wise common elements in diagonals:"<<countElement(Matrix, size); return 0; }
ผลลัพธ์
หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้
Row-wise common elements in diagonals:3