Chakravyuha Matrix Generator in C

#include<stdio.h>

void chakravyuha(int n);

int main(){
    int n; 
    
    printf("enter matrix size (Only odd number): ");
    scanf("%d",&n);
    
    if(n % 2 == 0){
        printf("you entered even number");
        return 1;
    }
    else{
        chakravyuha(n);
    }
}

void chakravyuha(int n){


    int matrix[100][100];
    for(int i = 0; i<n; i++){
        for(int j = 0; j<n; j++){
            matrix[i][j] = 0;
        }
    }

    int mid = n / 2;
    int row = mid, col = mid;
    int num = 1;
    int steps = 1;
    int m_size = n*n;
    matrix[row][col] = num++;
    
    while(num <= m_size){
        //right
        for(int i = 0; i<steps && num<=m_size; i++){
            col++;
            matrix[row][col] = num++;
        }
        
        //down
        for(int i = 0; i<steps && num<=m_size; i++){
            row++;
            matrix[row][col] = num++;
        }
        
        // after two time increment steps
        steps++;
        
        //left
        for(int i = 0; i<steps && num<m_size; i++){
            col--;
            matrix[row][col] = num++;
        }
        
        //up
        for(int i =0; i<steps && num<=m_size; i++){
            row--;
            matrix[row][col] = num++;
        }
        
        steps++;
    }
    
    
    printf("\n\n**** Chakravyuha ****\n\n");
    for(int i = 0; i<n; i++){
        for(int j = 0; j<n; j++){
            printf("%3d",matrix[i][j]);
        }
        printf("\n");
    }
}




Comments

Popular posts from this blog

AI and Human Evolution

Snake Game using JAVA

To Do List App (GUI) using C#