Kiểm tra ma phương (magic square) trong C



Bài tập C: Kiểm tra ma phương

Ma phương (Magic Square) là gì ?

Có lẽ một số bạn chưa biết đến khái niệm Ma phương (Magic Square). Mình xin đưa ra khái niệm này như sau:

Ma phương (Magic Square) là một dãy gồm n2 số nguyên dương sắp xếp trong một hình vuông kích thước n x n chia thành n2 ô vuông với n hàng và n cột, sao cho tổng số các số trên mỗi hàng, mỗi cột và trên hai đường chéo đều bằng nhau.

Chương trình C

Dưới đây là chương trình C để giải bài tập kiểm tra ma trận vuông trong C:

#include
#includeint main() {
   int size = 3;
   int matrix[3][3]; // = {{4,9,2},{3,5,7},{8,1,6}};
   int row, column = 0;
   int sum, sum1, sum2;
   int flag = 0;   printf("\nNhap ma tran: ");
   for (row = 0; row < size; row++) {
      for (column = 0; column < size; column++)
         scanf("%d", &matrix[row][column]);
   }   printf("In ma tran vua nhap: \n");
   for (row = 0; row < size; row++) {
      printf("\n");
      for (column = 0; column < size; column++) {
         printf("\t%d", matrix[row][column]);
      }
   }   //Kiem tra tong phan tu tren cac duong cheo
   sum = 0;
   for (row = 0; row < size; row++) {
      for (column = 0; column < size; column++) {
         if (row == column)
            sum = sum + matrix[row][column];
      }
   }   //Kiem tra tong phan tu tren cac hang
   for (row = 0; row < size; row++) {
      sum1 = 0;
      for (column = 0; column < size; column++) {
         sum1 = sum1 + matrix[row][column];
      }
      if (sum == sum1)
         flag = 1;
      else {
         flag = 0;
         break;
      }
   }   //Kiem tra tong phan tu tren cac cot
   for (row = 0; row < size; row++) {
      sum2 = 0;
      for (column = 0; column < size; column++) {
         sum2 = sum2 + matrix[column][row];
      }
      if (sum == sum2)
         flag = 1;
      else {
         flag = 0;
         break;
      }
   }   if (flag == 1)
      printf("\nDay so nay la Magic square!");
   else
      printf("\nDay so nay khong phai la Magic square!");   return 0;
}

Biên dịch chương trình C trên sẽ cho kết quả:

Kiểm tra ma phương (Magic Square) trong C
bai-tap-mang-hai-chieu-trong-c.jsp