用c++写一个输入邻接矩阵的程序
时间: 2023-12-03 15:02:20 浏览: 104
以下是一个简单的 C++ 程序,可以输入邻接矩阵:
```cpp
#include <iostream>
using namespace std;
const int MAXN = 100; // 最大顶点数
int n; // 顶点数
int graph[MAXN][MAXN]; // 邻接矩阵
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> graph[i][j];
}
}
return 0;
}
```
这个程序首先输入顶点数 n,然后使用两个循环输入邻接矩阵。例如,输入以下邻接矩阵:
```
0 1 1
1 0 1
1 1 0
```
程序的输出应该是:
```
3
0 1 1
1 0 1
1 1 0
```
注意,这个程序没有对输入进行任何检查,如果输入不符合邻接矩阵的格式,程序可能会崩溃或输出错误的结果。在实际使用中,应该对输入进行适当的检查和错误处理。
相关问题
用C++创建一个无向图邻接矩阵
以下是使用C++创建一个无向图邻接矩阵的示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n; // 图中节点的数量
cout << "请输入图中节点的数量: ";
cin >> n;
int graph[n][n]; // 创建邻接矩阵
// 初始化邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
graph[i][j] = 0;
}
}
// 添加边
int u, v; // 边的两个节点
char c; // 是否继续添加边
do {
cout << "请输入边的两个节点: ";
cin >> u >> v;
graph[u][v] = 1; // 添加一条从 u 到 v 的边
graph[v][u] = 1; // 添加一条从 v 到 u 的边
cout << "是否继续添加边?(y/n)";
cin >> c;
} while (c == 'y' || c == 'Y');
// 输出邻接矩阵
cout << "邻接矩阵:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << graph[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
该程序首先要求用户输入图中节点的数量,然后创建一个邻接矩阵。然后用户可以输入边的两个节点,程序将在邻接矩阵中添加相应的边,并询问用户是否要继续添加边。最后,程序将输出邻接矩阵。需要注意的是,由于这是一个无向图,因此添加一条从 u 到 v 的边同时也要添加一条从 v 到 u 的边。
c++输出地图邻接矩阵
假设地图中有n个点,我们可以使用一个n*n的矩阵来表示它们之间的连接关系。如果两个点之间有连接,则在矩阵中对应位置上的值为1,否则为0。下面是一个简单的C++程序,用于输出地图的邻接矩阵:
```c++
#include <iostream>
using namespace std;
const int MAXN = 100;
int map[MAXN][MAXN]; // 定义地图的邻接矩阵
int main()
{
int n; // 地图中的点数
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> map[i][j]; // 输入地图的邻接矩阵
// 输出地图的邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << map[i][j] << " ";
cout << endl;
}
return 0;
}
```
在这个程序中,我们通过一个二维数组`map`来存储地图的邻接矩阵,然后通过两个嵌套的循环遍历这个数组,输出每一个元素的值。注意,在输入地图的邻接矩阵时,我们也是通过两个嵌套的循环来完成的。
阅读全文
相关推荐











