#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)
//JAVA CODE
import java.util.Scanner;
public class Main {
static Scanner sc = new Scanner(System.in);
static {System.out.println(“Enter the matrix size”);}
static int size = sc.nextInt();
static int countTline = 0;
static int countRline = size-1;
static int countBline = size-1;
static int countLline = 0;
static int[][] array = new int[size][size];
static {
System.out.println(“Enter your matrix values : press enter after typing each value”);
for(int j = 0; j<size; j++){
for(int k = 0; k<size;k++){
array[j][k] = sc.nextInt();
}}
}
public static void main(String[] args) {
System.out.println("The circle of Given Matrix :-");
for(int i =0;i<size;i++){
straight();
rightSide();
bottomReverse();
leftUp();
}
}
public static void straight(){
for(int i = 0 ; i < size; i++){
if(array[countTline][i]==-1){
continue;
}
else {
System.out.print(array[countTline][i]+" ");
array[countTline][i] = -1;
}
}
countTline++;
}
public static void rightSide(){
for(int i = 0; i=0;i–){
if(array[countBline][i]==-1){
continue;
}
else {
System.out.print(array[countBline][i]+” “);
array[countBline][i] = -1;
}
}
countBline–;
}
public static void leftUp() {
for (int i = size-1; i >= 0; i–) {
if (array[i][countLline] == -1) {
continue;
} else {
System.out.print(array[i][countLline] + ” “);
array[i][countLline] = -1;
}
}
countLline++;
}
}
import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int m,n,i,j,k=0;
m=sc.nextInt();
n=sc.nextInt();
int arr[][]=new int[m][n];
for( i=0;i<m;i++){
for( j=0;j<n;j++){
arr[i][j]=sc.nextInt();
}
}
for( i=0;i<m;i++){
for( j=0;j<n;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
for(i=0;i<m;i++){
System.out.print(arr[k][i]);
}
k++;
for(i=k;i=0;–i)
{
System.out.print(arr[m-1][i]);
}
m–;
for(i=0;i<=k;i++)
{
System.out.print(arr[n-1][i]);
}
}
}
f=[]
l = []
n=int(input())
for i in range(0,n):
s1=[]
s=input()
s=s.split()
for j in s:
s1.append(int(j))
l.append(s1)
l3=l.copy()
for h in range(0,len(l)//2):
l1=[]
final=[]
final=final+l[0]
for i in range(0,len(l)):
if(i==0) or (i==len(l)-1):
pass
else:
final.append(l[i][-1])
final=final+l[-1][::-1]
for i in range(0,len(l)):
if(i==0) or (i==len(l)-1):
pass
else:
l1.append(l[i][0])
final=final+l1[::-1]
f=f+final
for i in range(0,len(l)):
l[i].pop(0)
l[i].pop(-1)
l.pop(0)
l.pop(-1)
print(l)
if(len(l3)%2!=0):
f=f+l[0]
print(f)
n=int(input(“enter number of row and cols you want to print:”))
for i in range(n):
row=[]
for j in range(n):
el=int(input())
row.append(el)
matrix.append(row)
print(matrix)
row_start=0
row_end=n-1
col_start=0
col_end=n-1
res=[]
while row_start<=row_end and col_start<=col_end:
for i in range(col_start,col_end+1):
res.append(matrix[row_start][i])
row_start+=1
for i in range(row_start,row_end+1):
res.append(matrix[i][col_end])
col_end-=1
if row_start<=row_end:
for i in range(col_end,col_start-1,-1):
res.append(matrix[row_end][i])
row_end-=1
if col_start<=col_end:
for i in range(row_end,row_start-1,-1):
res.append(matrix[i][col_start])
col_start+=1
print(res)
r=int(input(“entre no of rows”))
c=int(input(“entre no of columns”))
l=[list(map(int,input().split())) for _ in range(r)]
ans=[*l[0]]
for i in range(1,r):
j=c-1
ans.append(l[i][j])
for i in l[-1][c-2::-1]:
ans.append(i)
for i in range(-1,-r,-1):
if l[i][0] not in ans:
ans.append(l[i][0])
rev=False
for i in range(1,r-1):
if rev==False:
for j in l[i]:
if j not in ans:
ans.append(j)
rev=True
else:
for j in sorted(l[i],reverse=True):
if j not in ans:
ans.append(j)
rev=False
print(*ans)
import java.util.*;
class Main
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int ar[][]=new int[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
ar[i][j]=sc.nextInt();
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(i%2==0)
System.out.print(ar[i][j]);
else
System.out.print(ar[i][m-j-1]);
}
}
}
}
JAVA Code —>
import java.util.*;
import java.lang.Math;
public class Main
{
public static void printSpiral(int[][] arr){
int i = 0, sr = 0, sc = 0, er = arr[0].length, ec = arr.length, len = arr.length;
//sr:startrow, sc:startcolumn, ec:endcolumn, er:endrow
while( sr < er && sc < ec ){
for( i = sc ; i < ec ; i++ ){
System.out.print(arr[sr][i] + " ");
}
sr++;
for( i = sr ; i < er ; i++ ){
System.out.print(arr[i][ec-1] + " ");
}
ec–;
if( sr = sc ; i– ){
System.out.print(arr[er-1][i] + ” “);
}
er–;
}
if( sc = sr ; i–){
System.out.print(arr[i][sc] + ” “);
}
sc++;
}
}
}
public static void main(String args[]){
int[][] mat = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
printSpiral(mat);
}
}
Program in java//
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int a[][]=new int[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i][j]=sc.nextInt();
}
}
int i=0,j=0;
int down = n;
int up = 0;
int left= 0;
int right = n;
int it=0;
while(it<n-2){
while(j<right){
System.out.print(a[i][j] + " ");
j++;
}
right–;
j–;
i++;
while(i=left){
System.out.print(a[i][j] + ” “);
j–;
}
left++;
i–;
j++;
while(i>=up){
System.out.print(a[i][j] + ” “);
i–;
}
i++;
j++;
}
}
}
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;
}
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)
Thanks for contributing the code Suravi