因此,我已经尝试将矩阵反转了一段时间,我的意思是我收到了这样的输入文件。
4
7 6 5
3 2
1
第一个数字是矩阵4x4的尺寸。后面的数字是矩阵的元素,应该是一个上三角矩阵,应该看起来像这样。
0 5 6 7
0 0 2 3
0 0 0 1
0 0 0 0
我需要它来构建图形并将KruskalMST应用于它,我该怎么做?为了找到两个顶点之间的边的权重,我是否需要做所有这些工作? 这是我到目前为止所做的。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream inFile;
inFile.open("file.txt");
if(!inFile){
cerr << "Unable to open file!";
return 0;
}
int n;
inFile >> n;
cout << n <<endl;
int matriz[n][n];
for(int i = 0; i < n; i++){
for(int j = n; j > 0; j--){
inFile >> matriz[i][j];
cout << matriz[i][j]<<endl;
}
}
/*for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cout << matriz[i][j];
}
}*/
inFile.close();
return 0;
}
答案 0 :(得分:0)
好吧,我设法找到了构建矩阵的答案,但是由于某些原因,对于8x8以上的矩阵,代码会中断,并且只给出零作为答案。它非常适合8x8及以下的分辨率。你能帮我解决吗?我老师的档案开始是10x10矩阵。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream inFile;
inFile.open("file.txt");
if(!inFile){
cerr << "Unable to open file!";
return 0;
}
int n;
inFile >> n;
cout << n <<endl;
int matriz[n][n];
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
matriz[i][j] = 0;
}
}
int cont = 1;
for(int i = 1; i <= n; i++){
for(int j = n; j >= 1; j--){
if(j<=cont){
//cout << matriz[i][j]<<endl;
}else{
inFile >> matriz[i][j];
//cout << matriz[i][j]<<endl;
}
}
cont++;
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
cout << matriz[i][j] <<endl;
}
}
inFile.close();
return 0;
}