#include<stdio.h>
#include<string.h>
int min = 9999999, book[101], n;
int e[7][7] = {{1000,1000,220,1000,300,0,0},
{0,0,130,99999999,110,99999999,99999999},
{0,130,0,100,99999999,99999999,99999999},
{0,99999999,100,0,99999999,170,220},
{0,110,99999999,99999999,0,60,99999999},
{0,99999999,99999999,170,60,0,300},
{0,99999999,99999999,220,99999999,300,0}};
void dfs(int cur, int dis){
int j;
if(dis > min) return;
if(cur == n){
if(dis < min){
min = dis;
}
return;
}
for(j = 1; j <= n; j++){
if(e[cur][j] != 99999999 && book[j] == 0){
book[j] = 1;
dfs(j, dis + e[cur][j]);
book[j] = 0;
}
}
return;
}
int main(void){
int m,t;
int k, l;
char ch[100];
printf("请输入起点:");
scanf("%s", ch);
if(!strcmp(ch, "东莞"))
m = 1;
else if(!strcmp(ch, "清远"))
m = 2;
else if(!strcmp(ch, "贺州"))
m = 3;
else if(!strcmp(ch, "肇庆"))
m = 4;
else if(!strcmp(ch, "梧州"))
m = 5;
else if(!strcmp(ch, "桂林"))
m = 6;
printf("请输入终点:");
scanf("%s", ch);
if(!strcmp(ch, "东莞"))
n = 1;
else if(!strcmp(ch, "清远"))
n = 2;
else if(!strcmp(ch, "贺州"))
n = 3;
else if(!strcmp(ch, "肇庆"))
n = 4;
else if(!strcmp(ch, "梧州"))
n = 5;
else if(!strcmp(ch, "桂林"))
n = 6;
if(m > n){
t = m;
m = n;
n = t;
}
book[m] = 1;
dfs(m,0);
printf("%d\n", min);
getchar();
getchar();
return 0;
}
参考https://blog.csdn.net/qq_35924276/article/details/81871274
可视化
帮我做成这种
C代码写完了,你这是要MFC的吗?