Tuesday 19 July 2016

ZOHO INTERVIEW QUESTION rotate the matrix

#include<stdio.h>
#include<conio.h>
int N,move,n,a[100][100];
void rotate(int index){
int i,temp,temp1;
temp=a[index][index];
for(i=index+1;i<N-index;i++){
     temp1=a[index][i];
     a[index][i]=temp;
     temp=temp1;
}
for(i=index+1;i<N-index;i++){
     temp1=a[i][N-1-n];
     a[i][N-1-n]=temp;
     temp=temp1;
}
for(i=N-1-index-1;i>index;i--){
     temp1=a[N-1-n][i];
     a[N-1-n][i]=temp;
     temp=temp1;
}
for(i=N-1-index;i>index;i--){
     temp1=a[i][index];
     a[i][index]=temp;
     temp=temp1;
     printf("temp=%d",temp);
}
printf("temp=%d\n",temp);
a[index][index]=temp;
}
void main(){
int i,j,num=1;
clrscr();
scanf("%d",&N);
for(i=0;i<N;i++){
for(j=0;j<N;j++){
a[i][j]=num++;
}
}
for(i=0;i<N;i++){
for(j=0;j<N;j++) {
printf("%d ",a[i][j]);
}
printf("\n");
}

move=N/2;
n=0;
printf("move=%d\n",move);
while(move){
for(i=0;i<move;i++){
rotate(n);
}
n++;
move--;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++) {
printf("%d ",a[i][j]);
}
printf("\n");
}
getch();
}


No comments:

Post a Comment