0
在我的程序的主要功能我已經創建動態陣列,以在變量指定的要素數(計算陣列被刪除之後):動態數組作爲函數參數
cin >> bok;
double **macierz;
macierz = new double *[bok];
for(int i = 0; i < bok; ++i){
macierz[i] = new double[bok];
}
陣列macierz(波蘭矩陣)來計算它的決定因素與其他功能我已經寫了:
#include <iostream>
#include <conio.h>
#include <string>
#include <math.h>
double determinant(double b[][bok],int m);
// there is int main(){ ... }
double determinant(double b[][bok],int m){
int i, j;
double sum = 0,
double **c; //Second array that throws "type 'double' unexpected"
c = new double *[m];
for(int i = 0; i < m; ++i){
c[i] = new double[m];
}
if(m==2){
sum = b[0][0]*b[1][1] - b[0][1]*b[1][0];
return sum;
}
for(int p=0; p<m; p++){
int h = 0,k = 0;
for(i=1; i<m; i++){
for(j=0;j<m;j++){
if(j==p)
continue;
c[h][k] = b[i][j];
k++;
if(k == m-1){
h++;
k = 0;
}
}
}
sum = sum + b[0][p]*(pow((float)-1,p))*determinant(c,m-1);
}
for(int i = 0; i < m; ++i){ //Removing second array
delete[] c[i];
}
delete[] c;
return sum;
}
這裏是主要功能的地方,上面一個是用來計算行列式:
double det;
det = determinant(macierz, bok); //bok was entered by user
的問題是,該陣列macierz創建爲動態的,以允許用戶輸入數字,這將是陣列中的行的數量/列(它是正方形矩陣,所以行數等於列數) 。它完美地工作,直到我創建了需要這個動態數組作爲參數之一的函數。
怎樣的決定函數的聲明應該進行修改,以能夠使用macierz陣列,因爲它是第一個參數?還有一個小東西 - 也是數組c in determinant函數拋出錯誤(它是下一個動態數組,但我不明白,爲什麼它不起作用 - 我已經創建並刪除它像macierz編譯器正在拋出「類型」雙「意外」)
需要動態數組的使用:'std :: vector obj;'需要一個二維數組使用'std :: vector > obj;' –
2013-04-30 19:35:06
@AlokSave:請告訴我如何通過向量的矢量到我的GPU,或啓動一個DMA事務將其傳輸到我的NIC ... – 2013-04-30 19:53:49
@AlokSave:但是有可能不使用向量,就像_macierz_數組被創建?如果是這樣,它怎麼可以作爲一個論據? – Konpon96 2013-04-30 20:01:02