diff --git a/Matrix in reverse spiral form b/Matrix in reverse spiral form new file mode 100644 index 0000000..9777947 --- /dev/null +++ b/Matrix in reverse spiral form @@ -0,0 +1,80 @@ +#include +#define R 3 +#define C 6 +using namespace std; + +void ReversespiralPrint(int m, int n, int a[R][C]) +{ + long int b[100]; + +int i, k = 0, l = 0; + + int z = 0; + + int size = m*n; + + while (k < m && l < n) + { + int val; + + /* Print the first row from the remaining rows */ + for (i = l; i < n; ++i) + { + // printf("%d ", a[k][i]); + val = a[k][i]; + b[z] = val; + ++z; + } + k++; + + /* Print the last column from the remaining columns */ + for (i = k; i < m; ++i) + { + // printf("%d ", a[i][n-1]); + val = a[i][n-1]; + b[z] = val; + ++z; + } + n--; + + /* Print the last row from the remaining rows */ + if ( k < m) + { + for (i = n-1; i >= l; --i) + { + // printf("%d ", a[m-1][i]); + val = a[m-1][i]; + b[z] = val; + ++z; + } + m--; + } + + /* Print the first column from the remaining columns */ + if (l < n) + { + for (i = m-1; i >= k; --i) + { + // printf("%d ", a[i][l]); + val = a[i][l]; + b[z] = val; + ++z; + } + l++; + } + } + for (int i=size-1 ; i>=0 ; --i) + { + cout<