Advertisement
unnn

Roy Warshall

Jun 5th, 2016
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <malloc.h>
  4.  
  5. void roy_w(int **a, int n, int m[10][10]) {
  6.     int i, j, k, gasit = 0;
  7.  
  8.     for (i = 0; i < n; i++)
  9.         for (j = 0; j < n; j++)
  10.             m[i][j] = a[i][j];
  11.     for (j = 0; j < n; j++)
  12.         for (i = 0; i < n; i++)
  13.             if (m[i][j]==0)
  14.                 for (k = 0; k < n; k++)
  15.                     if (m[i][k] && m[k][j]) m[i][j] = 1;
  16. }
  17.  
  18. int **alocare(int m, int n) {
  19.     int **mat, i;
  20.  
  21.     mat = (int **)malloc(m*sizeof(int *));
  22.     for (i = 0; i < m; i++)
  23.         *(mat + i) = (int *)malloc(n*sizeof(int));
  24.     return mat;
  25. }
  26.  
  27. void dezaloca(int **mat, int m) {
  28.     int i;
  29.  
  30.     for (i = 0; i < m; i++)
  31.         free(*(mat + i));
  32.     free(mat);
  33. }
  34.  
  35.  
  36. void main() {
  37.     int n, v0, **a, m, i, j, vf1, vf2, mat[10][10];
  38.  
  39.     printf_s("Nr. varfuri: "); scanf_s("%i", &n);
  40.  
  41.     a = alocare(n, n);
  42.     for (i = 0; i < n; i++)
  43.         for (j = 0; j <= i; j++)
  44.             a[i][j] = a[j][i] = 0;
  45.     printf_s("\nNr. muchii: "); scanf_s("%i", &m);
  46.  
  47.     for (i = 0; i < m; i++) {
  48.         printf_s("Varf initial: "); scanf_s("%i", &vf1);
  49.         printf_s("Varf final: "); scanf_s("%i", &vf2);
  50.         a[vf1 - 1][vf2 - 1] = a[vf2 - 1][vf1 - 1] = 1;
  51.     }
  52.    
  53.     roy_w(a, n, mat);
  54.     dezaloca(a, n);
  55.     _getch();
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement