Advertisement
sconetto

Lista - Distância Cidades

Apr 28th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int *distancias(int A[6][6], int c) {
  5.     int *d, i, j, di;
  6.     int fila[6], ini, fim;
  7.     d = calloc(6, sizeof(int));
  8.     for (j = 0; j < 6; j++) {
  9.         d[j]=6;
  10.     }
  11.     d[c] = 0;
  12.     ini = 0;
  13.     fim = 0;
  14.     fila[fim++] = c;
  15.     while (ini != fim) {
  16.         i = fila[ini++];
  17.         di = d[i];
  18.         for (j = 0; j < 6; j++) {
  19.             if(A[i][j] == 1 && d[j] >= 6){
  20.                 d[j] = di + 1;
  21.                 fila[fim++] = j;
  22.             }
  23.         }
  24.     }
  25.     return d;
  26. }
  27.  
  28. int main(int argc, char const *argv[]) {
  29.     int c, i, j, A[6][6];
  30.     int count = 6;
  31.     int *fila;
  32.     for (i = 0; i < count; i++) {
  33.         for (j = 0; j < count; j++) {
  34.             scanf("%d", &A[i][j]);
  35.         }
  36.     }
  37.     scanf("%d", &c);
  38.     printf("\n");
  39.     printf("Matriz:\n");
  40.     for (i = 0; i < count; i++) {
  41.         for (j = 0; j < count; j++) {
  42.             printf("[%d] ", A[i][j]);
  43.         }
  44.         printf("\n");
  45.     }
  46.     fila = distancias(A, c);
  47.     printf("\n");
  48.     printf("Fila:\n");
  49.     for(i = 0; i < count; i++){
  50.         printf("[%d] ", fila[i]);
  51.     }
  52.     printf("\n");
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement