In Spiral Order.: Spiral Matrix This Program Prints The Numbers in Given Array (Row-Major Order)
In Spiral Order.: Spiral Matrix This Program Prints The Numbers in Given Array (Row-Major Order)
11 12 13 14
15 16 17 18
19 20 21 22
23 24 25 26
#include<stdio.h>
main()
{
int a[20][20],i,j,n,m,p,q,k=0;
printf("\n Enter Order Of matrix");
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
p=m;
q=n;
i=j=1;
while(k<p*q)
{
for(;j<=n&&k<p*q;j++)
{
printf("%d ",a[i][j]);
k++;
}
j--;
i++;
for(;i<=m && k<p*q;i++)
{
printf("%d ",a[i][j]);
k++;
}
i--;
j--;
for(;j>=i-m+1 && k<p*q;j--)
{
printf("%d ",a[i][j]);
k++;
}
j++;
i--;
for(;i>1 && k<p*q;i--)
{
printf("%d ",a[i][j]);
k++;
}
if(k<p*q)
{
j++;
i++;
n--;
m--;
}
}
}
Or
#include //stdio.h
#include //conio.h
#include //stdlib.h
#define maxel 10
void main()
{
int a[maxel][maxel] = {0},i,j,m,n,t=0,cnt=0;
clrscr();
printf("\nEnter the order of the matrix:");
scanf("%d%d",&m,&n);
printf("\nEnter the matrix elements:");
for(i=0;i
{
for(j=0;j
{
scanf("%d",&a[i][j]);
}
}
clrscr();
printf("\nThe given matrix is:\n\n");
for(i=0;i
{
for(j=0;j
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
printf("\n\n");
getch();
i=j=t=0;
cnt=0;
while(m>0||n>0)
{
for(j=t;cnt!=n;j++)
{
printf(" %d ",a[i][j]);
cnt++;
}
m--;
j--;
if(m==0)
break;
cnt=0;
for(i++;cnt!=m;i++)
{
printf(" %d ",a[i][j]);
cnt++;
}
n--;
i--;
if(n==0)
break;
cnt=0;
for(j--;cnt!=n;j--)
{
printf(" %d ",a[i][j]);
cnt++;
}
m--;
j++;
if(m==0)
break;
cnt=0;
for(i--;cnt!=m;i--)
{
printf(" %d ",a[i][j]);
cnt++;
}
n--;
i++;
if(n==0)
break;
cnt=0;
t++;
}
printf("\n\nThank you...");
getch();
}