1.
int top,bottom,left,right,size;
void printTop(int arr[][size])
{
    int i=top,j;
    for(j=left;j<=right;j++)
        printf("%d ",arr[i][j]);
}
void printBottom(int arr[][size])
{
    int i=bottom,j;
    for(j=right;j>=left;j--)
        printf("%d ",arr[i][j]);
}
void printLeft(int arr[][size])
{
    int i=left,j;
    for(j=bottom;j>=top;j--)
        printf("%d ",arr[j][i]);
}
void printRight(int arr[][size])
{
    int i=right,j;
    for(j=top;j<=bottom;j++)
        printf("%d ",arr[j][i]);
}

void printSpiral(int arr[][],int size)
{
    top=0; bottom=size-1; left=0; right=size-1;
    int count=0,flag=0;
    while(count<(size*size))
    {
        if(flag==0)
        {
            printTop(arr);
            count+=right-left+1;
            top++;
            flag=1;
        }
        else if(flag==1)
        {
            printRight(arr);
            count+=bottom-top+1;
            right--;
            flag=2;
        }
        else if(flag==2)
        {
            printBottom(arr);
            count+=right-left+1;
            bottom--;
            flag=3;
        }
        else
        {
            printLeft(arr);
            count+=bottom-top+1;
            left++;
            flag=0;
        }
    }
}

int main()
{
    int arr[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
    int i,j;
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
            printf("%d ",arr[i][j]);
        printf("\n");
    }
    printf("\n");
    size=4;
    printSpiral(arr,4);
    return 0;
}

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to