📄 text1.txt
字号:
#include<stdio.h>
#define max 10000;
#define NIL 00;
struct edge
{
int start;
int end;
int weight;
};
main()
{
int i;
int num;
int d[10];
int p[10];
struct edge gra[10];
for(i=0;i<10;i++)
{
d[i]=max;
p[i]=NIL;
}
d[0]=0;//该图的原点即为0点
for(i=0;i<10;i++)
gra[i].start=gra[i].end=gra[i].weight=0;
printf("\n 请注意!本程序可以处理10条边的有向图\n");
printf("\n (程序默认所输入的第一个点为图的原点)\n");
printf("\n 请输入图中结点的个数:");
scanf("%d",&num);
printf("\n 请按照:起始点,权值,终止点的顺序输入图的信息\n");
for(i=0;i<10;i++)
scanf("%d%d%d",&gra[i].start,&gra[i].weight,&gra[i].end);
for(i=0;i<10;i++)
{
if(d[gra[i].end]>d[gra[i].start]+gra[i].weight)
{
d[gra[i].end]=d[gra[i].start]+gra[i].weight;
p[gra[i].end]=gra[i].start;
}
}
for(i=0;i<10;i++)
{
if(d[gra[i].end]>d[gra[i].start]+gra[i].weight)
{
printf("\n 图的数据不合适,第%d条边处出现了负环,请仔细检查!\n",i);
exit(0);
}
}
for(i=0;i<num;i++)
printf(" 第%d个结点到原点的最短路径的值是%d\n",i,d[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -