Write a program to determine whether or not the given square is a magic square?

1 answer

Answer

1116432

2026-07-07 00:40

+ Follow

/*This program takes a square matrix from user and check whether it's a Magic Square or not. */

#include<stdio.h>

#include<conio.h>

int num[10][10],sum[21],r,c,i=0,x;

void read_matrix()

{ for(r=0;r<x;r++)

{ for(c=0;c<x;c++)

{ printf("Enter the value of matrix[%d][%d] :",r,c);

scanf("%d",&num[r][c]);

}

}

}

void calculate_sum()

{ int sum_row,sum_col=0,ctr=0;

for(r=0;r<x;r++)

{ sum_row = 0;

for(c=0;c<x;c++)

{ printf("\t%d",num[r][c]);

sum_row = sum_row + num[r][c];

}

sum[ctr] = sum_row;

ctr++;

printf(":: %d",sum_row);

printf("\n");

}

while(i<x)

{ printf("\t::");

i++;

}

printf("\n");

for(c=0;c<x;c++)

{sum_col = 0;

for(r=0;r<x;r++)

sum_col = sum_col + num[r][c];

sum[ctr] = sum_col;

ctr++;

printf("\t%d",sum_col);

}

for(r=0,c=0;r<x;r++,c++)

sum[2*x] = sum[2*x] + num[r][c];

for(r=0,c=x-1;r<x;r++,c--)

sum[2*x+1] = sum[2*x+1] + num[r][c];

}

char check_matrix()

{ char c;

for(i=0;i<2*x+1;i++)

{ if(sum[i] == sum[i+1])

c = 'Y';

else

{ c = 'N';

break;

}

}

return c;

}

void main()

{ char c;

clrscr();

printf("Enter d no. of rows or cols u want in your matrix :");

scanf("%d",&x);

read_matrix();

calculate_sum();

c = check_matrix();

if(c=='Y')

printf("\nThis matrix is a Magic Square");

else

printf("\nThis matrix is not a Magic Square");

getch();

}

ReportLike(0ShareFavorite

Copyright © 2026 eLLeNow.com All Rights Reserved.