Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

องค์ประกอบทั่วไปแบบแถวในสองเส้นทแยงมุมของเมทริกซ์สี่เหลี่ยมจัตุรัสใน C++


กำหนดเมทริกซ์สี่เหลี่ยมจัตุรัส 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