C++ Program to Traverse Matrix Helically

C++ Program to Traverse Matrix Helically

Write C++ Program to Traverse Matrix Helically

// CPP Program to Traverse Matrix Helically

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
	int A[3][3] = {{1, 2, 0}, {4, 0, 6}, {7, 8, 0} };

	int top, bottom, left, right, dir, i, j;
	int row = sizeof(A) / sizeof(A[0]);
	int column = sizeof(A[0]) / sizeof(A[0][0]);

	cout << "Matrix A :--> \n";
	for(i = 0;i < 3; i++)
	{
		for( j = 0; j < 3; j++)
		{
			cout << A[i][j] << " ";
		}
		cout << endl;
	}


	top = 0;
	bottom = row - 1;
	left = 0;
	right = column - 1;
	dir = 0;


	cout << "\n\nPrinting Matrix Helically :--> ";
	while(top <= bottom && left <= right)
	{
		if(dir == 0)         //for moving right
		{
			for(i = left;i <= right;i++)
				cout << A[top][i] << " ";
			top++;

		}
		else if(dir == 1)   //for moving down
		{
				for(i = top;i <= bottom; i++)
					cout << A[i][right] << " ";
				right--;

		}
		else if(dir == 2)		//for moving left
		{
				for(i = right;i >=  left; i--)
					cout << A[bottom][i] << " ";
				bottom--;

		}

                else if(dir == 3)		//for moving up
		{
				for(i = bottom;i >= top; i--)
					cout << A[i][left] << " ";
				left++;

		}
		dir = (dir + 1 ) % 4;
		cout << " ";

        }
	return 0;
}

Output:

Matrix A :-->
1  2  0
4  0  6
7  8  0


Printing Matrix Helically :--> 1 2 0  6 0  8 7  4  0