返回了错误结果5 10 1 4 3
时间: 2024-01-02 19:03:52 浏览: 106
jiecheng.rar_4 3 2 1
很抱歉,我之前的回答有误,代码中计算度数的方法有误。
正确的做法是,对于每个节点,计算它的入度和出度之和,即邻接矩阵中第 `i` 行和第 `i` 列的和,并输出。以下是修正后的 C++17 代码:
```cpp
#include <iostream>
#include <vector>
int main() {
int n;
std::cin >> n;
while (n--) {
int m;
std::cin >> m;
std::vector<std::vector<int>> graph(m, std::vector<int>(m, 0));
for (int i = 0; i < m; ++i) {
for (int j = 0; j < m; ++j) {
std::cin >> graph[i][j];
}
}
for (int i = 0; i < m; ++i) {
int degree = 0;
for (int j = 0; j < m; ++j) {
degree += graph[i][j] + graph[j][i];
}
std::cout << degree << " ";
}
std::cout << std::endl;
}
return 0;
}
```
这个程序也是首先读入数据组数 `n`,然后进入一个循环,每次读入一个图的节点数 `m` 和邻接矩阵,建立有向图。接下来对于每个节点,计算它的入度和出度之和,并输出。
阅读全文