离散数学将以下代码修改为已知有向图求邻接矩阵c语言#include "stdio.h" #define n 5 #define m 6 void output(int M[n][m]) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) printf("%3d ",M[i][j]); printf("\n"); } } void Correlation_Matrix(int Mg[n][m],int E[m][2]){ int i,j,k; for (i=0;i<m;i++) { j=E[i][0]-1;k=E[i][1]-1; Mg[j][i]++; Mg[k][i]++; } } void main() { int v[n]={1,2,3,4,5}; int Mg[n][m]={0}; int E[m][2]={{1,1},{1,2},{1,5},{2,5},{2,3},{3,2}} ; Correlation_Matrix(Mg,E); printf("所给图的关联矩阵为:\n"); output(Mg); getch(); }
时间: 2023-06-27 12:04:47 浏览: 130
以下是修改后的代码:
```c
#include "stdio.h"
#define n 5
#define m 6
void output(int M[n][n]) {
int i,j;
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
printf("%3d ",M[i][j]);
}
printf("\n");
}
}
void Adjacency_Matrix(int Mg[n][n], int E[m][2]) {
int i,j,k;
for (i=0;i<m;i++) {
j=E[i][0]-1;
k=E[i][1]-1;
Mg[j][k] = 1;
Mg[k][j] = 1;
}
}
void main() {
int v[n]={1,2,3,4,5};
int Mg[n][n]={0};
int E[m][2]={{1,1},{1,2},{1,5},{2,5},{2,3},{3,2}} ;
Adjacency_Matrix(Mg,E);
printf("所给图的邻接矩阵为:\n");
output(Mg);
getch();
}
```
主要修改为:
1. `output` 函数的参数类型由 `int M[n][m]` 修改为 `int M[n][n]`;
2. `Correlation_Matrix` 函数改为 `Adjacency_Matrix` 函数,实现邻接矩阵的计算;
3. 在 `Adjacency_Matrix` 函数中,将 `Mg[j][i]++` 和 `Mg[k][i]++` 改为 `Mg[j][k] = 1` 和 `Mg[k][j] = 1`,实现邻接矩阵的计算;
4. 在 `main` 函数中,将 `Correlation_Matrix` 函数改为 `Adjacency_Matrix` 函数,并且修改了输出的提示信息。
阅读全文