📄 router_calc.c
字号:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define T 10
int i;
int shutu[T][T], W[T], s[T], luyou[T];
int Tu()
{ int m, n, l;
FILE *fp;
for (m=0; m<10; m++)
{ for (n=0; n<=9; n++)
shutu[m][n]=0;}
for (m=0; m<=9; m++)
{ luyou[m]=11;
W[m]=10000;
s[m]=0;}
fp=fopen("calc.in","r");
fscanf(fp,"%d",&i);
while (feof(fp)==0)
{ fscanf(fp,"%d,%d,%d",&m,&n,&l);
shutu[m][n]=l;
shutu[n][m]=l;}
fclose(fp);}
int Biao()
{ int m, s;
FILE *fp;
fp=fopen("calc.out","w");
for (m=0; m<=9; m++)
if (m!=i&&luyou[m]!=11)
{ fprintf(fp,"%d,",m);
s=m;
while (luyou[s]!=i) s=luyou[s];
fprintf(fp,"%d\n",s);
}
}
main()
{ int m, n, max, u, q;
Tu();
W[i]=0;
for (m=1; m<=9;m++)
{ max=10000;
for (n=0; n<=9; n++)
if (s[n]==0&&W[n]<max)
{ max=W[n];
u=n; }
s[u]=1;
for (n=0; n<=9;n++)
if (s[n]==0&&shutu[u][n]>0)
{ q=W[u]+shutu[u][n];
if (q<W[n])
{ W[n]=q; luyou[n]=u;
}
}
getch();
}
Biao();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -