Please login

Prime

Prepinsta Prime

Video courses for company/skill based Preparation

(Check all courses)
Get Prime Video
Prime

Prepinsta Prime

Purchase mock tests for company/skill building

(Check all mocks)
Get Prime mock

Wipro NLTH Pattern Making Question: 1

Ques: Print a given matrix in spiral form.

Given a 2D array, print it in spiral form. See the following examples.

Please comment down the code in other languages as well below –

Input:
        1    2   3   4
        5    6   7   8
        9   10  11  12
        13  14  15  16
Output: 
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 


Input:
        1   2   3   4  5   6
        7   8   9  10  11  12
        13  14  15 16  17  18
Output: 
1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11
#include <stdio.h>
#define R 3
#define C 6
void spiralPrint (int m, int n, int a[R][C])
{
    int i, k = 0, l = 0;
    /* k - starting row index 
    m - ending row index 
    l - starting column index 
    n - ending column index 
    i - iterator 
    */
    while (k < m && l < n)
    {
        /* Print the first row from the remaining rows */
        for (i = l; i < n; ++i)
        {
            printf ("%d ", a[k][i]);
        }
        k++;
        /* Print the last column from the remaining columns */
        for (i = k; i < m; ++i)
        {
            printf ("%d ", a[i][n - 1]);
        }
        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]);
            }
            m--;
        }
        /* Print the first column from the remaining columns */
        if (l < n) 
        { 
            for (i = m - 1; i >= k; --i)
            {
                printf ("%d ", a[i][l]);
            }
            l++;
        }
    }
}
/* Driver program to test above functions */
int main ()
{
    int a[R][C] = { {1, 2, 3, 4, 5, 6},
    {7, 8, 9, 10, 11, 12},
    {13, 14, 15, 16, 17, 18}
    };
    spiralPrint (R, C, a);
    return 0;
}
#include <bits/stdc++.h> 
using namespace std;
#define R 3
#define C 6

void spiralPrint(int m, int n, int a[R][C])
{
int i, k = 0, l = 0;

/* k - starting row index
m - ending row index
l - starting column index
n - ending column index
i - iterator
*/

while (k < m && l < n) {
/* Print the first row from
the remaining rows */
for (i = l; i < n; ++i) {
cout << a[k][i] << " ";
}
k++;

/* Print the last column
from the remaining columns */
for (i = k; i < m; ++i) {
cout << a[i][n - 1] << " ";
}
n--;

/* Print the last row from
the remaining rows */
if (k < m) {
for (i = n - 1; i >= l; --i) {
cout << a[m - 1][i] << " ";
}
m--;
}

/* Print the first column from
the remaining columns */
if (l < n) {
for (i = m - 1; i >= k; --i) {
cout << a[i][l] << " ";
}
l++;
}
}
}

/* Driver program to test above functions */
int main()
{
int a[R][C] = { { 1, 2, 3, 4, 5, 6 },
{ 7, 8, 9, 10, 11, 12 },
{ 13, 14, 15, 16, 17, 18 } };

spiralPrint(R, C, a);
return 0;
}
// Java program to print a given matrix in spiral form 
import java.io.*;
class Main
{
// Function print matrix in spiral form
static void spiralPrint (int m, int n, int a[][])
{
int i, k = 0, l = 0;
/* k - starting row index
m - ending row index
l - starting column index
n - ending column index
i - iterator
*/
while (k < m && l < n)
{
// Print the first row from the remaining rows
for (i = l; i < n; ++i)
{
System.out.print (a[k][i] + " ");
}
k++;
// Print the last column from the remaining columns
for (i = k; i < m; ++i)
{
System.out.print (a[i][n - 1] + " ");
}
n--;
// Print the last row from the remaining rows */
if(k < m)
{
for (i = n - 1; i >= l; --i)
{
System.out.print (a[m - 1][i] + " ");
}
m--;
}
// Print the first column from the remaining columns */
if (l < n)
{
for (i = m - 1; i >= k; --i)
{
System.out.print (a[i][l] + " ");
}
l++;
}
}
}
// driver program
public static void main (String[]args)
{
int R = 3;
int C = 6;
int a[][] = { {1, 2, 3, 4, 5, 6},
{7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}
};
spiralPrint (R, C, a);
}
}
# Python3 program to print 
# given matrix in spiral form
def spiralPrint(m, n, a) :
k = 0; l = 0

''' k - starting row index
m - ending row index
l - starting column index
n - ending column index
i - iterator '''


while (k < m and l < n) :

# Print the first row from
# the remaining rows
for i in range(l, n) :
print(a[k][i], end = " ")

k += 1

# Print the last column from
# the remaining columns
for i in range(k, m) :
print(a[i][n - 1], end = " ")

n -= 1

# Print the last row from
# the remaining rows
if ( k < m) :

for i in range(n - 1, (l - 1), -1) :
print(a[m - 1][i], end = " ")

m -= 1

# Print the first column from
# the remaining columns
if (l < n) :
for i in range(m - 1, k - 1, -1) :
print(a[i][l], end = " ")

l += 1

# Driver Code
a = [ [1, 2, 3, 4, 5, 6],
[7, 8, 9, 10, 11, 12],
[13, 14, 15, 16, 17, 18] ]

R = 3; C = 6
spiralPrint(R, C, a)
Disclaimer-: The questions provided on this page are only model practice questions there is no surety that these questions have been previously asked in any company placement papers, these questions here only have the sole purpose to make you practice coding questions

3 comments on “Wipro NLTH Pattern Making Question: 1”


  • Prashant

    Program in C :
    #include
    #define R 3
    #define C 6
    int main() {
    int a[R][C] = { { 1, 2, 3, 4, 5, 6 },
    { 7, 8, 9, 10, 11, 12 },
    { 13, 14, 15, 16, 17, 18 } };

    for(int i=0; i<R;i++){
    if (i%2==0)
    {for(int j=0;j=0;m–)
    printf(“%d “,a[i][m]);}
    }
    return 0;
    }


  • Suravi

    a = [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]
    b = []
    for i in range(len(a)):
    for j in range(len(a[0])):
    b.append(a[i][j])
    print(b)