用邻接矩阵存储有向图,并输出各个定点的出入度
由于没有权值,两个定点之间的权值为1,没有注意memset(e,0,sizeof(e));我考试问题就在这。。。气炸了
测试样例一:
1 input: 2 7 9 3 1 2 4 2 3 5 2 5 6 2 6 7 3 5 8 4 3 9 5 2 10 5 4 11 6 7 12 0 0 13 output 14 1 3 1 1 2 1 0 15 0 2 2 1 2 1 1
测试样例二:
1 input: 2 5 5 3 1 2 4 2 3 5 3 4 6 4 5 7 5 1 8 output: 9 1 1 1 1 1 10 1 1 1 1 1
考完试写的
1 # include<stdio.h> 2 # include<string.h> 3 # define MAX 105 4 int e[MAX][MAX]; 5 int main() 6 { 7 int n,m,i,j,u,v,od,id; 8 while(1) 9 { 10 scanf("%d%d",&n,&m); 11 if(n==0 && m==0) break; 12 memset(e,0,sizeof(e)); 13 //构建邻接矩阵 14 for(i=1; i<=m; i++) 15 { 16 scanf("%d%d",&u,&v); 17 e[u-1][v-1] = 1; 18 } 19 //出度 20 for(i=0; i<n; i++) 21 { 22 od = 0; 23 for(j=0; j<n; j++) od += e[i][j]; 24 if(i==0) printf("各点的出度依次是:%d",od); 25 else printf(" %d",od); 26 } 27 printf(" "); 28 //入度 29 for(i=0; i<n; i++) 30 { 31 id = 0; 32 for(j=0; j<n; j++) id += e[j][i]; 33 if(i==0) printf("各点的入度依次是:%d",id); 34 else printf(" %d",id); 35 } 36 printf(" "); 37 } 38 return 0; 39 }