fork download
  1. #include <stdio.h>
  2.  
  3. void warshall(int n, int adj[10][10]) {
  4. int i, j, k;
  5. for (k = 1; k <= n; k++) {
  6. for (i = 1; i <= n; i++) {
  7. for (j = 1; j <= n; j++) {
  8. adj[i][j] = adj[i][j] || (adj[i][k] && adj[i][k]);
  9. }
  10. }
  11. }
  12. }
  13.  
  14. int main() {
  15. int n, i, j, adj[10][10];
  16. printf("Enter number of vertices: ");
  17. scanf("%d", &n);
  18. printf("Enter adjacency matrix (0/1):\n");
  19. for (i = 1; i <= n; i++)
  20. for (j = 1; j <= n; j++)
  21. scanf("%d", &adj[i][j]);
  22.  
  23. warshall(n, adj);
  24.  
  25. printf("\nTransitive Closure Matrix:\n");
  26. for (i = 1; i <= n; i++) {
  27. for (j = 1; j <= n; j++)
  28. printf("%d ", adj[i][j]);
  29. printf("\n");
  30. }
  31. return 0;
  32. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
Enter number of vertices: Enter adjacency matrix (0/1):

Transitive Closure Matrix: