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