2014-04-14 37 views
-2

我對c#相當陌生,並且對二維數組有一點問題(請原諒我缺乏術語)。說我有一個二維數組,假設看起來像下面的東西:尋找基於二維數組輸入的最接近的數字

1.2 1.32 1.37 1.9 1.91 1.95 1.97

2.5 2.55 2.71 2.85 2.87 2.98 2.9

3.9 ... ... ... ... ... ...

...

用戶輸入是隨機的,對我的理解的目的,說輸入是2.54。我將如何返回最接近的數字?

謝謝。

+0

每行是否對應於x和x + 1之間的數字(x從1開始)?數組是否已排序? – CinCout

+0

你嘗試過什麼嗎?例如,如何解決一維數組的相同問題? –

+0

甚至在紙上? –

回答

0

確認這是否有效;我不確定。

public static double SearchArray(double inValToSearch_, double[,] inArr_) 
    { 
     if (inArr_ == null || inArr_.Length == 0) 
      return 0; 

     double closestVal = inArr_[0, 0]; 
     for (int i = 0; i < inArr_.GetLength(0); i++) 
      for (int j = 0; j < inArr_.GetLength(1); j++) 
       if (inValToSearch_ - inArr_[i, j] > inValToSearch_ - closestVal) 
        closestVal = inArr_[i, j]; 

     return closestVal; 
    }