fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define SIZE 6
  5. int main()
  6. {
  7. int a[SIZE][SIZE]; // матрица связей
  8. int d[SIZE]; // минимальное расстояние
  9. int v[SIZE]; // посещенные вершины
  10. int temp;
  11. int minindex, min;
  12. system("chcp 1251");
  13. system("cls");
  14. // Инициализация матрицы связей
  15. for (int i = 0; i<SIZE; i++)
  16. {
  17. a[i][i] = 0;
  18. for (int j = i + 1; j<SIZE; j++) {
  19. printf("Введите расстояние %d - %d: ", i + 1, j + 1);
  20. scanf("%d", &temp);
  21. a[i][j] = temp;
  22. a[j][i] = temp;
  23. }
  24. }
  25. // Вывод матрицы связей
  26. for (int i = 0; i<SIZE; i++)
  27. {
  28. for (int j = 0; j<SIZE; j++)
  29. printf("%5d ", a[i][j]);
  30. printf("\n");
  31. }
  32. //Инициализация вершин и расстояний
  33. for (int i = 0; i<SIZE; i++)
  34. {
  35. d[i] = 10000;
  36. v[i] = 1;
  37. }
  38. d[0] = 0;
  39. // Шаг алгоритма
  40. do {
  41. minindex = 10000;
  42. min = 10000;
  43. for (int i = 0; i<SIZE; i++)
  44. { // Если вершину ещё не обошли и вес меньше min
  45. if ((v[i] == 1) && (d[i]<min))
  46. { // Переприсваиваем значения
  47. min = d[i];
  48. minindex = i;
  49. }
  50. }
  51. // Добавляем найденный минимальный вес
  52. // к текущему весу вершины
  53. // и сравниваем с текущим минимальным весом вершины
  54. if (minindex != 10000)
  55. {
  56. for (int i = 0; i<SIZE; i++)
  57. {
  58. if (a[minindex][i] > 0)
  59. {
  60. temp = min + a[minindex][i];
  61. if (temp < d[i])
  62. {
  63. d[i] = temp;
  64. }
  65. }
  66. }
  67. v[minindex] = 0;
  68. }
  69. } while (minindex < 10000);
  70. // Вывод кратчайших расстояний до вершин
  71. printf("\nКратчайшие расстояния до вершин: \n");
  72. for (int i = 0; i<SIZE; i++)
  73. printf("%5d ", d[i]);
  74.  
  75. // Восстановление пути
  76. int ver[SIZE]; // массив посещенных вершин
  77. int end = 4; // индекс конечной вершины = 5 - 1
  78. ver[0] = end + 1; // начальный элемент - конечная вершина
  79. int k = 1; // индекс предыдущей вершины
  80. int weight = d[end]; // вес конечной вершины
  81.  
  82. while (end > 0) // пока не дошли до начальной вершины
  83. {
  84. for(int i=0; i<SIZE; i++) // просматриваем все вершины
  85. if (a[end][i] != 0) // если связь есть
  86. {
  87. int temp = weight - a[end][i]; // определяем вес пути из предыдущей вершины
  88. if (temp == d[i]) // если вес совпал с рассчитанным
  89. { // значит из этой вершины и был переход
  90. weight = temp; // сохраняем новый вес
  91. end = i; // сохраняем предыдущую вершину
  92. ver[k] = i + 1; // и записываем ее в массив
  93. k++;
  94. }
  95. }
  96. }
  97. // Вывод пути (начальная вершина оказалась в конце массива из k элементов)
  98. printf("\nВывод кратчайшего пути\n");
  99. for (int i = k-1; i>=0; i--)
  100. printf("%3d ", ver[i]);
  101. getchar(); getchar();
  102. return 0;
  103. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#define _CRT_SECURE_NO_WARNINGS
^
Main.java:2: error: illegal character: '#'
#include <stdio.h>
^
Main.java:3: error: illegal character: '#'
#include <stdlib.h>
^
Main.java:4: error: illegal character: '#'
#define SIZE 6
^
Main.java:8: error: class, interface, or enum expected
  int d[SIZE]; // ??????????? ??????????
  ^
Main.java:9: error: class, interface, or enum expected
  int v[SIZE]; // ?????????? ???????
  ^
Main.java:10: error: class, interface, or enum expected
  int temp;
  ^
Main.java:11: error: class, interface, or enum expected
  int minindex, min;
  ^
Main.java:12: error: class, interface, or enum expected
  system("chcp 1251");
  ^
Main.java:13: error: class, interface, or enum expected
  system("cls");
  ^
Main.java:15: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
  ^
Main.java:15: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                  ^
Main.java:15: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                          ^
Main.java:18: error: class, interface, or enum expected
    for (int j = i + 1; j<SIZE; j++) {
    ^
Main.java:18: error: class, interface, or enum expected
    for (int j = i + 1; j<SIZE; j++) {
                        ^
Main.java:18: error: class, interface, or enum expected
    for (int j = i + 1; j<SIZE; j++) {
                                ^
Main.java:20: error: class, interface, or enum expected
      scanf("%d", &temp);
      ^
Main.java:21: error: class, interface, or enum expected
      a[i][j] = temp;
      ^
Main.java:22: error: class, interface, or enum expected
      a[j][i] = temp;
      ^
Main.java:23: error: class, interface, or enum expected
    }
    ^
Main.java:26: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                  ^
Main.java:26: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                          ^
Main.java:28: error: class, interface, or enum expected
    for (int j = 0; j<SIZE; j++)
                    ^
Main.java:28: error: class, interface, or enum expected
    for (int j = 0; j<SIZE; j++)
                            ^
Main.java:30: error: class, interface, or enum expected
    printf("\n");
    ^
Main.java:31: error: class, interface, or enum expected
  }
  ^
Main.java:33: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                  ^
Main.java:33: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                          ^
Main.java:36: error: class, interface, or enum expected
    v[i] = 1;
    ^
Main.java:37: error: class, interface, or enum expected
  }
  ^
Main.java:40: error: class, interface, or enum expected
  do {
  ^
Main.java:42: error: class, interface, or enum expected
    min = 10000;
    ^
Main.java:43: error: class, interface, or enum expected
    for (int i = 0; i<SIZE; i++)
    ^
Main.java:43: error: class, interface, or enum expected
    for (int i = 0; i<SIZE; i++)
                    ^
Main.java:43: error: class, interface, or enum expected
    for (int i = 0; i<SIZE; i++)
                            ^
Main.java:48: error: class, interface, or enum expected
        minindex = i;
        ^
Main.java:49: error: class, interface, or enum expected
      }
      ^
Main.java:56: error: class, interface, or enum expected
      for (int i = 0; i<SIZE; i++)
                      ^
Main.java:56: error: class, interface, or enum expected
      for (int i = 0; i<SIZE; i++)
                              ^
Main.java:61: error: class, interface, or enum expected
          if (temp < d[i])
          ^
Main.java:64: error: class, interface, or enum expected
          }
          ^
Main.java:68: error: class, interface, or enum expected
    }
    ^
Main.java:71: error: class, interface, or enum expected
  printf("\n?????????? ?????????? ?? ??????: \n");
  ^
Main.java:72: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
  ^
Main.java:72: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                  ^
Main.java:72: error: class, interface, or enum expected
  for (int i = 0; i<SIZE; i++)
                          ^
Main.java:76: error: class, interface, or enum expected
  int ver[SIZE]; // ?????? ?????????? ??????
  ^
Main.java:77: error: class, interface, or enum expected
  int end = 4; // ?????? ???????? ??????? = 5 - 1
  ^
Main.java:78: error: class, interface, or enum expected
  ver[0] = end + 1; // ????????? ??????? - ???????? ???????
  ^
Main.java:79: error: class, interface, or enum expected
  int k = 1; // ?????? ?????????? ???????
  ^
Main.java:80: error: class, interface, or enum expected
  int weight = d[end]; // ??? ???????? ???????
  ^
Main.java:82: error: class, interface, or enum expected
  while (end > 0) // ???? ?? ????? ?? ????????? ???????
  ^
Main.java:84: error: class, interface, or enum expected
    for(int i=0; i<SIZE; i++) // ????????????? ??? ???????
                 ^
Main.java:84: error: class, interface, or enum expected
    for(int i=0; i<SIZE; i++) // ????????????? ??? ???????
                         ^
Main.java:88: error: class, interface, or enum expected
        if (temp == d[i]) // ???? ??? ?????? ? ????????????
        ^
Main.java:91: error: class, interface, or enum expected
          end = i;       // ????????? ?????????? ???????
          ^
Main.java:92: error: class, interface, or enum expected
          ver[k] = i + 1; // ? ?????????? ?? ? ??????
          ^
Main.java:93: error: class, interface, or enum expected
          k++;
          ^
Main.java:94: error: class, interface, or enum expected
        }
        ^
Main.java:99: error: class, interface, or enum expected
  for (int i = k-1; i>=0; i--)
  ^
Main.java:99: error: class, interface, or enum expected
  for (int i = k-1; i>=0; i--)
                    ^
Main.java:99: error: class, interface, or enum expected
  for (int i = k-1; i>=0; i--)
                          ^
Main.java:101: error: class, interface, or enum expected
  getchar(); getchar();
  ^
Main.java:101: error: class, interface, or enum expected
  getchar(); getchar();
             ^
Main.java:102: error: class, interface, or enum expected
  return 0;
  ^
Main.java:103: error: class, interface, or enum expected
}
^
66 errors
stdout
Standard output is empty