看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
VictorTom:我應該推iox6你真是個好人嗎Orz 不過你這個output[]應該 10/13 00:28
VictorTom:傳不回去喔:) 10/13 00:28
ioioioioioio:那宣告成全域變數好了 10/13 00:29
kikiqqp:好人 (′▽‵)/ 10/13 00:33
VictorTom:在呼叫者先宣告好傳進來就可以了吧XD 不過我每次寫這種 10/13 00:37
VictorTom:有col/row的啦, matrix運算的啦, 都要先畫圖想一陣子到 10/13 00:37
VictorTom:直的橫的行和列與COL/ROW的關係, 然後寫進C array[][] 10/13 00:38
VictorTom:又該怎麼排, 超暈的~_~ 尤其看看D3D再看看OGL....XD 10/13 00:38
ioioioioioio:哈哈 我寫影像程式也都是很亂... 10/13 00:39
cheekyboy:實在太感激了~v大說的呼叫者先宣告好傳進來不太懂耶>"< 10/13 08:48
csihcs:caller(){int o[..]=..; callee(o);...} callee(...){...} 10/13 14:45
cheekyboy:感謝樓上~加翻書終於知道哩 我需要的是return ^^" 10/13 21:56
VictorTom:return 1024個element的array這種事能做也不要做, 你的 10/13 22:24
VictorTom:call stack每次call function push/pop它們就忙死了XD 10/13 22:25
VictorTom:要return array的address在caller能用, 要嘛你還是自己 10/13 22:25
VictorTom:先把address傳進來, 也就是放答案的空間還是在caller那. 10/13 22:26
VictorTom:要嘛就是在function裡用malloc自己配空間然後存完結果 10/13 22:26
VictorTom:再傳address回去, 只是這樣你就要有人負責回收這塊mem. 10/13 22:27
VictorTom:除非你的函數設計上有什麼非這麼做不可的理由, 不然我覺 10/13 22:27
VictorTom:得不用拘泥在"回傳結果"一定要用"return"來做這點:) 10/13 22:27