看板 C_and_CPP 關於我們 聯絡資訊
經過i大指導之後改成為: #define ROW 1024 #define COL 1024 long int output[ROW]; long int matrix(long int arr[] [COL]); long int matrix(long int arr[] [COL]) { int i,j; 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; } return output[i]; } 可是似乎對矩陣使用return不是個聰明的寫法,又參考了v大的解說和書本,又改寫為 #define ROW 1024 #define COL 1024 long int *average[ROW]; long int *matrix(long int *); //其中arr位址已知; long int *matrix(long int *arr) { int i,j; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { average[i] = *(*(arr+i)+j)/COL; } } return average[i]; } 又好像怪怪的,還請各位多多指教,話說caller是C語言裡的函數嗎?? ※ 引述《ioioioioioio (討戰是興趣)》之銘言: : ※ 引述《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: 140.114.207.108