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

การข้ามเมทริกซ์แบบแถวกับคอลัมน์ใน C++


เมทริกซ์สามารถข้ามผ่านได้สองวิธี การข้ามผ่านแถวเป็นการเข้าชมแต่ละแถวทีละแถวโดยเริ่มจากแถวแรก ตามด้วยแถวที่สอง และไปเรื่อยๆ จนถึงแถวสุดท้าย องค์ประกอบในแถวถูกส่งกลับจากดัชนี 0 ไปยังดัชนีสุดท้าย

ในการข้ามผ่านตามคอลัมน์ องค์ประกอบจะถูกข้ามผ่านจากคอลัมน์แรกไปยังคอลัมน์สุดท้ายตามลำดับ

ในเมทริกซ์ 2 มิติ M[i][j] ดัชนี i ใช้สำหรับแสดงแถวและดัชนี j ใช้สำหรับแสดงคอลัมน์ สำหรับการข้ามผ่านแถวโดยเริ่มจาก

i=0 แถวที่ 0 และ 0<=j<ดัชนีสุดท้าย

i=แถวที่ 1 และ 0<=j<ดัชนีสุดท้าย

.....

i=แถวสุดท้าย และ 0<=j<ดัชนีสุดท้าย

สำหรับการข้ามผ่านคอลัมน์ ให้เริ่มจาก

j=0 คอลัมน์ที่ 0 และ 0<=i<ดัชนีสุดท้าย

j=คอลัมน์ที่ 1 และ 0<=i<ดัชนีสุดท้าย

.....

j=คอลัมน์สุดท้าย และ 0<=i<ดัชนีสุดท้าย

ลำดับของดัชนียังคงเหมือนเดิมในอาร์เรย์ 2 มิติ M[i][j]- i สำหรับแถวและ j สำหรับคอลัมน์

ตัวอย่าง

ป้อนข้อมูล

int arr[MAX][MAX] ={ {1,2,3,4,5},{6,7,8,9,0}, {5,4,3,2,1},{ 0,0,0,0,0}, {8,9,7,6,1}};

ผลผลิต

แถว Major Traversal1 2 3 4 56 7 8 9 05 4 3 2 10 0 0 0 08 9 7 6 1 คอลัมน์ Major Traversal1 6 5 0 82 7 4 0 93 8 3 0 74 9 2 0 65 0 1 0 1 

คำอธิบาย −ผลลัพธ์เป็นตัวอธิบาย

การข้ามเมทริกซ์แบบแถวกับคอลัมน์ใน C++

ป้อนข้อมูล

int arr[MAX][MAX] ={ {1,1,1,1,1},{2,2,2,2,2}, {3,3,3,3,3},{ 4,4,4,4,4}, {5,5,5,5,5}};

ผลผลิต

แถวเมเจอร์ทราเวอร์แซล1 1 1 1 12 2 2 2 2 23 3 3 3 34 4 4 4 45 5 5 5 5 คอลัมน์เมเจอร์ Traversal1 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5 

คำอธิบาย − ผลลัพธ์เป็นตัวอธิบาย

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

ในแนวทางนี้ เราใช้ two for loops ในการพิมพ์อินพุต 2D matrix matrix ในการข้ามผ่านแบบ row-wise และ column wise

  • ใช้อาร์เรย์อินพุต arr[][] เพื่อแทนเมทริกซ์ 2 มิติ

  • ใช้ตัวแปร i และ j เป็นดัชนีสำหรับองค์ประกอบแถวและองค์ประกอบคอลัมน์

  • สำหรับการข้ามผ่านแบบแถว ให้เริ่มการวนรอบจากดัชนี i=0 ถึง i

  • ข้างใน ให้เริ่มการวนซ้ำซ้อนจาก j=0 ถึง j

  • พิมพ์ arr[i][j]

  • สำหรับการข้ามผ่านตามคอลัมน์ ให้เริ่ม a for loop จากดัชนี j=0 ถึง j

  • ข้างใน ให้เริ่มการวนซ้ำซ้อนจาก i=0 ถึง i

  • พิมพ์ arr[i][j].

ตัวอย่าง

#include ใช้เนมสเปซ std;#define MAX 5int main(){ int arr[MAX][MAX] ={ {1,2,3,4,5},{6,7 ,8,9,0},{5,4,3,2,1},{0,0,0,0,0},{8,9,7,6,1}}; int ฉัน, เจ; cout<<"แถวหลัก Traversal "< 

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

แถว Major Traversal1 2 3 4 56 7 8 9 05 4 3 2 10 0 0 0 08 9 7 6 1 คอลัมน์ Major Traversal6 5 0 8 3 2 7 6 4