回复 2楼 yuchao130
这是全部的程序,是全有全无配流的代码。但程序只能执行第一个if语句,以后就会报错
#include<stdio.h>
#define N 9
#define a 10000
void main()
{
int n=9;
int path[9][9]={-1,-1,1,-1,3,4,3,4,5,-1,-1,-1,-1,-1,4,-1,4,5,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,4,-1,4,5,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
int x[9][9]={0},b[9][9]={0,0,0,0,0,0,0,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i,j,i1,i11;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{if (path[i][j]!=i)
{
i1=path[i][j];
printf("%d %d %d\n",i,i1,j);
x[i1][j]=x[i1][j]+b[i][j];
}
printf("%d\n",i1);
loop:if (path[i][i1]!=i)
{i11=path[i][i1];
x[i11][i1]=x[i11][i1]+b[i][j];
i1=path[i][i11];goto loop;
}
// printf("%d",path[i][i1]);
if(path[i][j]==i)
{
x[i][j]=x[i][j]+b[i][j];
}
printf("%d %d/n",i,j);
}
}
printf("路段流量矩阵为:\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%4d",x[i][j]);
printf("\n");}
}
[
本帖最后由 shenlan4939 于 2014-3-12 10:59 编辑 ]