Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4.  
  5. int numOrte = 5;
  6. int freieOrte();
  7. int strecke = 0;
  8. int naechsterOrt;
  9. int aktuelleAnzWege = 0;
  10. int numBesuchterOrt=0;
  11. int berechneStrecke(int, int);
  12. void ausgabe();
  13. bool verlaufFrei();
  14. int ort[5][5] = { { 0, 25, 20, 70, 48 },
  15. { 25, 0, 27, 40, 33 },
  16. { 20, 27, 0, 56, 30 },
  17. { 70, 40, 56, 0, 17 },
  18. { 48, 33, 30, 17, 0 } };
  19. int wege[60][5];
  20. int strecken[60];
  21. bool besuchteOrte[5] = { { false } };
  22.  
  23. int main(void) {
  24. besuchteOrte[0] = true;
  25. berechneStrecke(0, 1);
  26. }
  27.  
  28. int berechneStrecke(int von, int nach) {
  29. strecke += ort[von][nach];
  30. besuchteOrte[nach] = true;
  31. wege[aktuelleAnzWege][numBesuchterOrt] = nach;
  32. numBesuchterOrt++;
  33. if (freieOrte() == 0) {
  34. strecke += ort[nach][0];
  35. wege[aktuelleAnzWege][numBesuchterOrt] = 0;
  36. strecken[aktuelleAnzWege] = strecke;
  37. ausgabe();
  38. aktuelleAnzWege++;
  39. }
  40. for (naechsterOrt = 0; naechsterOrt<numOrte;) {
  41. if (verlaufFrei() == false) {
  42. continue;
  43. }
  44. if (besuchteOrte[naechsterOrt] == false) {
  45. printf("Ort von [%d]nach[%d]Strecke: %d\n", von, nach, strecke);
  46. berechneStrecke(nach, naechsterOrt);
  47. }
  48. else if (besuchteOrte[naechsterOrt] == true) {
  49. printf("naechster Ort: %d ==true;naechsterOrt++: %d \n", naechsterOrt,naechsterOrt+1);
  50. naechsterOrt++;
  51. }
  52. }
  53. return strecke;
  54. }
  55.  
  56. int freieOrte() {
  57. int i, temp = 0;
  58. for (i = 0; i<numOrte; i++) {
  59. if (besuchteOrte[i] == false) {
  60. temp++;
  61. }
  62. }
  63. return temp;
  64. }
  65.  
  66. bool verlaufFrei() {
  67. if (wege[0][3] == wege[1][3]) {
  68. return false;
  69. }
  70.  
  71. return true;
  72. }
  73.  
  74. void ausgabe() {
  75. printf("Wege: %d,%d,%d,%d,%d\n", wege[0][0], wege[0][1], wege[0][2], wege[0][3], wege[0][4]);
  76. printf("Strecke[%d]: %d\n", aktuelleAnzWege, strecken[aktuelleAnzWege]);
  77. system("PAUSE");
  78. return;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement