C program to implement Latin Square Using Arrays

C program to implement Latin Square Using Arrays: A Latin square is a square matrix of order n. And it is filled with n different symbols, each symbol occurs only once in each row and only once in each column.

C program to implement Latin Square Using Arrays

 #include <stdio.h>
  #define ROW 10
  #define COL 10
  void rotateArray(int data[], int n, int shift) {
        int i, j, tmp;
        for (i = 0; i < shift; i++) {
                tmp = data[0];
                for (j = 1; j <= n - 1; j++) {
                        data[j - 1] = data[j];
                }
                data[n - 1] = tmp;
        }
        return;
  }

  int main() {
        int lsquare[ROW][COL], data[COL];
        int i, j, n;
        printf("Enter the number of entries:");
        scanf("%d", &n);
        for (i = 0; i < n; i++) {
                printf("Data[%d]: ", i);
                scanf("%d", &data[i]);
        }
        for (i = 0; i < n; i++) {
                for (j = 0; j < n; j++) {
                        lsquare[i][j] = data[j];
                }
        }
        for (i = 0; i < n; i++) {
                rotateArray(&lsquare[i][0], n, i);
        }
        printf("\nLatin Square:\n");
        for (i = 0; i < n; i++) {
                for (j = 0; j < n; j++) {
                        printf("%d ", lsquare[i][j]);
                }
                printf("\n");
        }

        return 0;
  }

Output of Program

Enter the number of entries:2
Data[0]: 56
Data[1]: 5

Latin Square:
56 5
5 56