Friday, September 23, 2022

BCA and B.Sc Programs - Programming in C Lab - Bharathiar University - Practical Program 4 - C Program to print Magic Square

 

Write a C Program to Print  Magic Square where n>3 and n is odd






In this Page:

  • Magic Square Program Source Code for Visual Studio Code
  • Magic Square Program Source Code for MS Dos Turbo C++


Source Code for Visual Studio Code:

#include <stdio.h>
#include <string.h>
void magicSquare(int n)
{
    int x[n][n];
    // set all slots as 0
    memset(x, 0, sizeof(x));
    int row = n / 2;
    int col = n - 1;
    int limit=n*n;
    int i,j;
    for (int num = 1; num <= limit;) {
        if (row == -1 && col == n) // 3rd condition
        {
row = 0;
            col = n - 2;
        }
        else {
  // 1st condition            
            if (row < 0)
                row = n - 1;

            // 1st condition             
            if (col == n)
                col = 0;
            }
        if (x[row][col]) // 2nd condition
        {
row++;
            col =col- 2;
            continue;
        }
        else
{
            x[row][col] = num; // set number
num++;
}
row--; // 1st condition
        col++;
    }
    // Print magic square
    printf("The Magic Square \n");       
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++)
            printf("%3d ", x[i][j]);
        printf("\n");
    }
}
int main()
{
    int n; 
    printf("Enter order of Magic Square:");
    scanf("%d",&n);
    if(n>3 && n%2!=0)
        magicSquare(n);
    else
        printf("n value must be odd and greater than 0");
    return 0;
}


Output:


Enter order of Magic Square:5

The Magic Square 

  9   3  22  16  15

  2  21  20  14   8

 25  19  13   7   1

 18  12   6   5  24

 11  10   4  23  17




Source Code for MS Dos Turbo C++: 

#include <stdio.h>

#include <string.h>

#include<conio.h>

void magicSquare(int n)

{

    int x[50][50];

     int row = n / 2;

    int col = n - 1;

    int limit=n*n;

    int i,j,num;

    // set all slots as 0

    memset(x, 0, sizeof(x));


    for (num = 1; num <= limit;)

    {

if (row == -1 && col == n) // 3rd condition

{

row = 0;

    col = n - 2;

}

else {

  // 1st condition

    if (row < 0)

row = n - 1;


    // 1st condition

    if (col == n)

col = 0;

    }

if (x[row][col]) // 2nd condition

{

row++;

    col =col- 2;

    continue;

}

else

{

    x[row][col] = num; // set number

num++;

}

row--; // 1st condition

col++;

    }

    // Print magic square

    printf("The Magic Square \n");

    for (i = 0; i < n; i++) {

for (j = 0; j < n; j++)

    printf("%3d ", x[i][j]);

printf("\n");

    }

}

int main()

{

    int n;

    printf("Enter order of Magic Square:");

    scanf("%d",&n);

    if(n>3 && n%2!=0)

magicSquare(n);

    else

printf("n value must be odd and greater than 3");

    getch();

    return 0;

}

Output:


Enter order of Magic Square:5

The Magic Square 

  9   3  22  16  15

  2  21  20  14   8

 25  19  13   7   1

 18  12   6   5  24

 11  10   4  23  17





No comments:

Post a Comment

Program 12 BCA Madras University BCA Object Oriented Programming using C++ Practical Madras University Program 12 Implement a telephone directory using files

  BCA Object Oriented Programming using C++ Practical Madras University  Program 12  Implement a telephone directory using files SOURCE CODE...