Re: 矩陣運算

看板C_and_CPP作者 (討戰是興趣)時間16年前 (2009/10/12 16:26), 編輯推噓4(4016)
留言20則, 5人參與, 最新討論串2/4 (看更多)
※ 引述《cheekyboy (唷)》之銘言: : 請問各位大大們, : 現在我有一個假設1024乘1024的矩陣,想用c語言寫一個函數, : int A(int matrix); : 因此當我輸入一個矩陣時, : 可以將該輸入的矩陣橫列上的每一個元素相加取平均, : 然後該函數送回一個1行x1024列的矩陣, : 請問該如何寫呢?? : 為入門新手還請各位多多幫忙, : 感恩 : ----------------------------------------------------------- : 以下為大E增加內容,若有修到推文,還請多多包涵,謝謝 : 想寫一個矩陣函數,當給於一個n*n的矩陣時希望回傳一個 1*n的矩陣, : 其中回傳矩陣內的元素為所輸入矩陣的其中一列元素的平均值, : 目前想法為 : #define ROW 1024 : #define COL 1024 : /* arr[] 為實驗數據已知 */ : int matrix(int arr[] [COL]); : int main(void) : { : int i,j ; int output[1024]; //你確定要用int 不用double? for(i=0; i<ROW; i++) { output[i] = 0; for(j=0; j<COL; j++) { output[i] = output[i] + arr[i][j]; } output[i] = output[i] / COL; } : 上面是參考"C語言教學手冊" "洪維恩" 改寫得 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.15.164 ※ 編輯: ioioioioioio 來自: 220.132.15.164 (10/13 00:27)

10/13 00:28, , 1F
我應該推iox6你真是個好人嗎Orz 不過你這個output[]應該
10/13 00:28, 1F

10/13 00:28, , 2F
傳不回去喔:)
10/13 00:28, 2F

10/13 00:29, , 3F
那宣告成全域變數好了
10/13 00:29, 3F

10/13 00:33, , 4F
好人 (′▽‵)/
10/13 00:33, 4F

10/13 00:37, , 5F
在呼叫者先宣告好傳進來就可以了吧XD 不過我每次寫這種
10/13 00:37, 5F

10/13 00:37, , 6F
有col/row的啦, matrix運算的啦, 都要先畫圖想一陣子到
10/13 00:37, 6F

10/13 00:38, , 7F
直的橫的行和列與COL/ROW的關係, 然後寫進C array[][]
10/13 00:38, 7F

10/13 00:38, , 8F
又該怎麼排, 超暈的~_~ 尤其看看D3D再看看OGL....XD
10/13 00:38, 8F

10/13 00:39, , 9F
哈哈 我寫影像程式也都是很亂...
10/13 00:39, 9F

10/13 08:48, , 10F
實在太感激了~v大說的呼叫者先宣告好傳進來不太懂耶>"<
10/13 08:48, 10F

10/13 14:45, , 11F
caller(){int o[..]=..; callee(o);...} callee(...){...}
10/13 14:45, 11F

10/13 21:56, , 12F
感謝樓上~加翻書終於知道哩 我需要的是return ^^"
10/13 21:56, 12F

10/13 22:24, , 13F
return 1024個element的array這種事能做也不要做, 你的
10/13 22:24, 13F

10/13 22:25, , 14F
call stack每次call function push/pop它們就忙死了XD
10/13 22:25, 14F

10/13 22:25, , 15F
要return array的address在caller能用, 要嘛你還是自己
10/13 22:25, 15F

10/13 22:26, , 16F
先把address傳進來, 也就是放答案的空間還是在caller那.
10/13 22:26, 16F

10/13 22:26, , 17F
要嘛就是在function裡用malloc自己配空間然後存完結果
10/13 22:26, 17F

10/13 22:27, , 18F
再傳address回去, 只是這樣你就要有人負責回收這塊mem.
10/13 22:27, 18F

10/13 22:27, , 19F
除非你的函數設計上有什麼非這麼做不可的理由, 不然我覺
10/13 22:27, 19F

10/13 22:27, , 20F
得不用拘泥在"回傳結果"一定要用"return"來做這點:)
10/13 22:27, 20F
文章代碼(AID): #1AqrYZsc (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
0
6
16年前, 2009/10/12 12:34
以下文章回應了本文
完整討論串 (本文為第 2 之 4 篇):
0
2
4
20
0
6
16年前, 2009/10/12 12:34
文章代碼(AID): #1AqrYZsc (C_and_CPP)