2013-02-10 131 views
-2

我需要在C++中查找多维数组的最大值和索引,例如,如果我有数组arr,它有4个维数: int r[10][10][10][10]其中包含随机值,I需要找到形式的解决方案:多维数组的最大值索引C++

MAX_VALUE:104

max_valu_index:(3,4,8,2)

基本上我试图构造一个三维Hough变换累加器。非常感谢。

+0

您是否尝试过简单地在3个嵌套循环中行走数组? – cnicutar 2013-02-10 21:16:54

+1

所以继续做吧。 – 2013-02-10 21:17:47

+0

你有没有听说过'loop'? – ogzd 2013-02-10 21:17:58

回答

2
int max = r [0][0][0][0]; 
int ma = 0, mb = 0, mc = 0, md = 0; 

for (int a = 0; a < 10; a++) 
    for (int b = 0; b < 10; b++) 
     for (int c = 0; c < 10; c++) 
      for (int d = 0; d < 10; d++) 
      { 
       if (r [a][b][c][d] > max) 
       { 
        max = r [a][b][c][d]; 
        ma = a; 
        mb = b; 
        mc = c; 
        md = d; 
       } 
      } 

printf ("max_value : %d max_value_index : (%d, %d, %d, %d)", max, ma, mb, mc, md); 
+1

我猜'sprintf'你的意思是'printf',因为没有目标字符串:) – LihO 2013-02-10 21:24:42