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

Duyệt theo hàng và theo cột của ma trận trong C ++

Một ma trận có thể được duyệt theo hai cách. Duyệt theo hàng khổ lần lượt truy cập từng hàng bắt đầu từ hàng đầu tiên rồi đến hàng thứ hai, v.v. cho đến hàng cuối cùng. Các phần tử trong hàng được trả về từ chỉ mục 0 đến chỉ mục cuối cùng.

Trong truyền theo cột, các phần tử được chuyển từ cột đầu tiên đến cột cuối cùng theo thứ tự.

Trong ma trận 2D M [i] [j]. Chỉ số i được sử dụng để biểu diễn các hàng và chỉ số j được sử dụng để biểu diễn các cột. Để chuyển tải theo hàng, hãy bắt đầu từ

i =hàng thứ 0 và 0 <=j

i =hàng đầu tiên và 0 <=j

.....

i =hàng cuối cùng và 0 <=j

Để duyệt theo cột, hãy bắt đầu từ

cột thứ j =0 và 0 <=i

j =cột đầu tiên và 0 <=i

.....

j =cột cuối cùng và 0 <=i

Thứ tự của các chỉ mục vẫn giữ nguyên trong mảng 2D M [i] [j] - i đối với hàng và j đối với cột

Ví dụ

Đầu vào -

 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}}; 

Đầu ra -

 Hàng chính Truyền tải1 2 3 4 56 7 8 9 05 4 3 2 10 0 0 0 08 9 7 6 1 Đường truyền chính cột1 6 5 0 82 7 4 0 93 8 3 0 74 9 2 0 65 0 1 0 1  

Giải thích −Đầu ra tự giải thích

Duyệt theo hàng và theo cột của ma trận trong C ++

Đầu vào -

 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}}; 

Đầu ra -

 Hàng Chính chuyển hướng1 1 1 1 12 2 2 2 23 3 3 3 34 4 4 4 45 5 5 5 5 Chuyển ngang cột chính1 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5  

Giải thích - Kết quả tự giải thích.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

Trong cách tiếp cận này, chúng tôi sử dụng hai vòng lặp for để in ma trận 2D đầu vào trong các đường đi ngang theo hàng và theo cột.

  • Lấy mảng đầu vào arr [] [] để biểu diễn ma trận 2D.

  • Lấy các biến i và j làm chỉ số cho các phần tử hàng và phần tử cột.

  • Để duyệt theo hàng, hãy bắt đầu một vòng lặp for từ chỉ mục i =0 đến i

  • Bên trong nó, bắt đầu một vòng lặp for lồng nhau từ j =0 đến j

  • In arr [i] [j]

  • Để duyệt theo cột, hãy bắt đầu một vòng lặp for từ chỉ mục j =0 đến j

  • Bên trong nó, bắt đầu một vòng lặp for lồng nhau từ i =0 đến i

  • In arr [i] [j].

Ví dụ

 #include  using namespace 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 i, j; cout <<"Row Major Traversal" < 

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau

 Đường truyền chính của hàng1 2 3 4 56 7 8 9 05 4 3 2 10 0 0 0 08 9 7 6 1 Đường truyền chính của cột6 5 0 8 3 2 7 6 4