Hej, mam następujący problem: program ma wyświetlać wszystkie ścieżki z punktu początkowego (1) do punktu końcowego (8) od najkrótszej do najdłuższej dla zadanego grafu:
Nie wiem czemu w podanych wynikowych ścieżkach pokazują się wartości 64 i jeszcze większe a ścieżki nie są za bardzo posortowane. Będę wdzięczny za odpowiedź i ogólne uwagi. To co mam do tej pory wygląda tak:
#include <stdio.h>
#include <stdlib.h>
#define M 8
#define N 3
void test(int tabl[M][N],int wariant, char *buff);
int main(int argc, char *argv[])
{
int graf[M][N] = {{1,-1,-1},{2,-1,-1},{3,4,7},{4,7,-1},{5,6,-1},{6,7,-1},{7,-1,-1},{0,0,0}};
char *buff;
sprintf(buff,"%d ",1);
test(graf,0,buff);
system("PAUSE");
return 0;
}
void test(int tabl[M][N],int wariant, char *buff){
int j;
for(j = 0;j<3;j++){
int a = tabl[wariant][j];
char h[250];
if(a > 0){
sprintf(h,strcat(buff,"%d "),a+1);
test(tabl,a,h);
}
else if(a != -1){
printf("%s \n",buff);
return;
}
}
}