C语言实现有向网的邻接矩阵并输出该邻接矩阵
时间: 2023-10-18 10:21:34 浏览: 99
下面是C语言实现有向网的邻接矩阵的代码和输出:
```c
#include <stdio.h>
#define MAXV 100 // 最大顶点数
typedef struct {
int edges[MAXV][MAXV]; // 邻接矩阵
int n; // 顶点数
int e; // 边数
} MGraph;
void createMGraph(MGraph *G) {
int i, j, k, w;
printf("请输入顶点数和边数:");
scanf("%d %d", &G->n, &G->e);
for (i = 0; i < G->n; i++) {
for (j = 0; j < G->n; j++) {
G->edges[i][j] = 0; // 初始化邻接矩阵
}
}
for (k = 0; k < G->e; k++) {
printf("请输入第%d条边的起始顶点、结束顶点和权值:", k + 1);
scanf("%d %d %d", &i, &j, &w);
G->edges[i-1][j-1] = w; // 存储边的权值
}
}
void printMGraph(MGraph G) {
int i, j;
printf("邻接矩阵为:\n");
for (i = 0; i < G.n; i++) {
for (j = 0; j < G.n; j++) {
printf("%d ", G.edges[i][j]);
}
printf("\n");
}
}
int main() {
MGraph G;
createMGraph(&G);
printMGraph(G);
return 0;
}
```
示例输入:
```
请输入顶点数和边数:5 7
请输入第1条边的起始顶点、结束顶点和权值:1 2 5
请输入第2条边的起始顶点、结束顶点和权值:1 3 3
请输入第3条边的起始顶点、结束顶点和权值:2 4 2
请输入第4条边的起始顶点、结束顶点和权值:3 2 1
请输入第5条边的起始顶点、结束顶点和权值:3 4 6
请输入第6条边的起始顶点、结束顶点和权值:4 5 4
请输入第7条边的起始顶点、结束顶点和权值:5 3 2
```
输出结果:
```
邻接矩阵为:
0 5 3 0 0
0 0 0 2 0
0 1 0 6 0
0 0 0 0 4
0 0 2 0 0
```
阅读全文