二維陣列若想當參數傳遞 |
尚未結案
|
shenglin
一般會員 發表:12 回覆:6 積分:3 註冊:2004-05-02 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
|
shenglin
一般會員 發表:12 回覆:6 積分:3 註冊:2004-05-02 發送簡訊給我 |
richtop 您好:
小弟是想寫一個函數:高斯消去法(Gauss Elimination)(使用maximization of pivot elements 的技巧)
以下是小弟的拙作:
void GEMP(float m[][],float ReturnValue[]) { //變數宣告 //-------------------------------------------------------------------------- long i,j,k,n; long r,*c,row,col; float Pivot,*temp; row=(sizeof(m)/sizeof(float)) 1; col=(sizeof(m)/sizeof(float)) 2; //-------------------------------------------------------------------------- if(col!=row 1) { ShowMessage("矩陣輸入有誤"); } c=new long[row]; ReturnValue=new float[row]; temp=new float [col]; for(i=1;j<=row;i ) { Pivot=0; for(j=i;j |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
shenglin 您好: 底下的程式碼,先給您參考。
不過依照您的程式碼來看,似乎陣列是由1開始,所以我配合這種方式,刻意將指標的起始位置修改了一下,就是紅色的部分,請參考。另外陣列的大小也是要告訴函式的。
<>< class="code">//---------------------------------------------------------------------------
void showArray(float *data, int row, int col)
{ float **m;
AnsiString msg=""; m = new float *[row 1]; // index starting from 1. for (int k=1; k<=row; k )
m[k] = data (k-1)*col-1;
for (int r=1; r<=row; r )
{ for (int c=1; c<=col; c )
msg = FloatToStr(m[r][c]) " ";
msg = "\n";
}
ShowMessage(msg); delete [] m;
} void __fastcall TForm1::Button2Click(TObject *Sender)
{
float data[]= {11,12,13,21,22,23}; showArray(data, 2, 3);
showArray(data, 3, 2);
}
//--------------------------------------------------------------------------- RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====##### 發表人 - richtop 於 2004/08/02 00:39:10
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |