我試圖打印兩個矩陣,矩陣說A和B.當我只是要求矩陣A一個文本文件,我的程序就可以了。但是當我調用另一個矩陣B的文本文件時,我的程序失敗了,留下一個框,指出「newQr.exe中的0x00168a07未處理異常:0xC00000FD:堆棧溢出。」當我將它們稱爲兩個不同的輸入文件時,如何打印兩個矩陣?
這是錯誤的這樣調用兩個文本文件?以下是我的代碼。我正在爲QR Householder方法生成算法。但是因爲我已經在這裏失敗了,所以我不能繼續我的算法。希望知道這裏出了什麼問題。這裏有:
test1.in矩陣答:
1.00 -6.00
34.00 -1644.00
803.00 -42258.00
15524.00 -831864.00
285061.00 -15355806.00
5153062.00 -278046852.00
test2.in矩陣B:
-1875.00 17976.00 485714.00 -501810.00
5370.00 409584.00 -973084.00 559740.00
291495.00 9193128.00 -64643018.00 55199850.00
6351060.00 175638624.00 -1430791544.00 1249618200.00
120491745.00 3213894936.00 -27252104806.00 23932788870.00
2200175790.00 58033455312.00 -498213904852.00 438253167540.00
這是我的代碼:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
#define M 6
#define N 2
#define x 6
#define y 4
#define MAX 100
using namespace std;
int main()
{
double A[MAX][MAX], B[MAX][MAX];
int i, j;
ifstream ifp;
ifp.open("test1.in", ios::in);
cout << "Matrix A" << setw(40) << endl;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
ifp >> A[i][j];
cout << setw(20) << A[i][j];
}
cout << endl;
}
ifp.close();
ifp.open("test2.in", ios::in);
cout << "Matrix B" << setw(40) << endl;
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
ifp >> B[i][j];
cout << setw(20) << B[i][j];
}
cout << endl;
}
ifp.close();
cin.get();
}
我無法重現。它可能與實際代碼不同。 – BLUEPIXY
@BLUEPIXY你不能重現的意思是什麼?這是我編程的實際代碼。 – olive
我可以成功運行代碼。如果它是一個實際的代碼,發佈後不會像這樣改變。 – BLUEPIXY