[ create a new paste ] login | about

Link: http://codepad.org/dpnlp8zz    [ raw code | output | fork ]

C, pasted on Nov 9:
/*Unwrapping a Spiral */

#include<stdio.h>

#include<stdlib.h>

int nrow,ncol,**mtrx;
void spiral(int no );
int main()
{
	int i,j,no;

	printf("\nEnter No of Rows & Cols");
	scanf("%d \n %d",&nrow,&ncol);


	mtrx=(int **)malloc(ncol*sizeof(int *));

				for(i=0;i<ncol;i++)
			{	
					mtrx[i]=(int *)malloc(nrow*sizeof(int));

			}

		printf("\nEnter Elements of Matrix");
		for(i=0;i<nrow;i++)
		{
		for(j=0;j<ncol;j++)
		{
			scanf("\n%d",&mtrx[i][j]);
			printf("\n%d",mtrx[i][j]);
			printf("\t%d \t %d\n",i,j);
			}
		
		}

		/*	for(i=0;i<nrow;i++)
		{
		for(j=0;j<ncol;j++)
		{
			printf("\n%d",mtrx[i][j]);
			printf("\t%d \t %d",i,j);
			}
		
		}*/

		no=nrow*ncol;

		spiral(no);



return 0;
}
void spiral(int no)
{
		int nele=0,cntr=0,i;

		while(nele<=no)
		{
				for(i=cntr;i<(ncol-cntr);i++)
				{
					printf("\n%d",mtrx[cntr][i]);
					nele++;
				}
				if(nele==no)
				{
				exit(0);
				}
						
				
				for(i=cntr+1;i<(nrow-cntr);i++)
						{
							printf("\n%d",mtrx[i][ncol-1-cntr]);
							nele++;
						}
				
										if(nele==no)
										{
										exit(0);
										}
			
						for(i=(ncol-2-cntr);i>cntr;i--)
						{
							printf("\n%d",mtrx[nrow-1-cntr][i]);
							nele++;
						}
					
							if(nele==no)
							{
							exit(0);
							}
			
						for(i=(nrow-1-cntr);i>cntr;i--)
						{
							printf("\n%d",mtrx[i][cntr]);
							nele++;
						}
			
		
		cntr++;
		}

}


Output:
1
2
3

Enter No of Rows & Cols
Enter Elements of Matrix


Create a new paste based on this one


Comments: