Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- int numOrte = 5;
- int freieOrte();
- int strecke = 0;
- int naechsterOrt;
- int aktuelleAnzWege = 0;
- int numBesuchterOrt=0;
- int berechneStrecke(int, int);
- void ausgabe();
- bool verlaufFrei();
- int ort[5][5] = { { 0, 25, 20, 70, 48 },
- { 25, 0, 27, 40, 33 },
- { 20, 27, 0, 56, 30 },
- { 70, 40, 56, 0, 17 },
- { 48, 33, 30, 17, 0 } };
- int wege[60][5];
- int strecken[60];
- bool besuchteOrte[5] = { { false } };
- int main(void) {
- besuchteOrte[0] = true;
- berechneStrecke(0, 1);
- }
- int berechneStrecke(int von, int nach) {
- strecke += ort[von][nach];
- besuchteOrte[nach] = true;
- wege[aktuelleAnzWege][numBesuchterOrt] = nach;
- numBesuchterOrt++;
- if (freieOrte() == 0) {
- strecke += ort[nach][0];
- wege[aktuelleAnzWege][numBesuchterOrt] = 0;
- strecken[aktuelleAnzWege] = strecke;
- ausgabe();
- aktuelleAnzWege++;
- }
- for (naechsterOrt = 0; naechsterOrt<numOrte;) {
- if (verlaufFrei() == false) {
- continue;
- }
- if (besuchteOrte[naechsterOrt] == false) {
- printf("Ort von [%d]nach[%d]Strecke: %d\n", von, nach, strecke);
- berechneStrecke(nach, naechsterOrt);
- }
- else if (besuchteOrte[naechsterOrt] == true) {
- printf("naechster Ort: %d ==true;naechsterOrt++: %d \n", naechsterOrt,naechsterOrt+1);
- naechsterOrt++;
- }
- }
- return strecke;
- }
- int freieOrte() {
- int i, temp = 0;
- for (i = 0; i<numOrte; i++) {
- if (besuchteOrte[i] == false) {
- temp++;
- }
- }
- return temp;
- }
- bool verlaufFrei() {
- if (wege[0][3] == wege[1][3]) {
- return false;
- }
- return true;
- }
- void ausgabe() {
- printf("Wege: %d,%d,%d,%d,%d\n", wege[0][0], wege[0][1], wege[0][2], wege[0][3], wege[0][4]);
- printf("Strecke[%d]: %d\n", aktuelleAnzWege, strecken[aktuelleAnzWege]);
- system("PAUSE");
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement