[問題] c++二維陣列問題

看板C_and_CPP作者 (奈米)時間15年前 (2009/07/28 00:16), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 ask 看板] 鄉民們,請問一下要如何輸出二維陣列中最大值的所在位址 目前做出來的可以找出最大值,但是想不透要如何設計找出位址.. 如果以目前顯示的話.. 輸出要顯示: 最大值為99 99 at[1][3] 0 1 2 3 ┌─┬─┬─┬─┐ 0 │ 3│13│26│32│ ├─┼─┼─┼─┤ 1 │30│10│25│99│ ├─┼─┼─┼─┤ 2 │9 │88│77│66│ ├─┼─┼─┼─┤ 3 │55│44│33│22│ └─┴─┴─┴─┘ 麻煩了Q_Q #include<iostream> using namespace std; void Print (int [4][4]); void Print (int data[4][4]) { int i,j,max=data[0][0]; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(max<data[i][j]) //在二維陣列中,若找到更大的值就儲存在max max=data[i][j]; } } cout<<"最大的數是"<<max<<endl; cout<<max<<"at["<<i<<"]["<<j<<"]"<<endl; } int main() { int arr[4][4]={{3,13,26,32},{30,10,25,99},{9,88,77,66},{55,44,33,22}}; Print(arr); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.6.235

07/28 00:15,
C_and_CPP轉這板吧?
07/28 00:15

07/28 00:16,
恩,謝謝
07/28 00:16
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.6.235 ※ 編輯: tw010278 來自: 114.44.6.235 (07/28 00:17)

07/28 00:22, , 1F
除了記錄最大值外,也要紀錄最大值的位置
07/28 00:22, 1F

07/28 00:23, , 2F
就像1F說的, 另外拉兩個變數記錄當時i/j不就得了??
07/28 00:23, 2F

07/28 00:25, , 3F
嗯嗯...我我我...不清楚那兩個變數要設定在哪...
07/28 00:25, 3F

07/28 00:25, , 4F
有定義了maxi=i maxj=j...
07/28 00:25, 4F

07/28 01:34, , 5F
if那行成立時,不只紀錄max, 同時紀錄maxi,maxj
07/28 01:34, 5F

07/28 01:41, , 6F
所以主要定義都在if那邊做囉?
07/28 01:41, 6F

07/28 01:44, , 7F
你先弄清楚每一行程式碼的意思會比較好 @@
07/28 01:44, 7F

07/28 01:50, , 8F
比較不清楚的是for迴圈納部份...
07/28 01:50, 8F
文章代碼(AID): #1ARTBvFX (C_and_CPP)
文章代碼(AID): #1ARTBvFX (C_and_CPP)