2014-03-12 46 views
0

在c#中,需要選取數組中的最大值並將其總和爲下一個最小值。在整數列表中查找2個最大數字的總和

預期成果是5 + 4

foreach試過情侶語法,我無法得到確切的輸出。尋找一些幫助

int[] arr =new int[] {1,2,3,4,5}; 

foreach (int i in arr) 
{ 

} 
+1

什麼是'前輩'?總和在哪裏?預期的結果是什麼?如果你不能得到確切的輸出,那麼你有什麼輸出? –

+0

4票關閉。我提到在數組內部說出值4。預期的輸出是4 + 5 – goofyui

+0

你可能想問一下http://codegolf.stackexchange.com/,因爲沒有明確的理由說明爲什麼會使用'foreach'來完成任務。 –

回答

10

一些LINQ像下面應該解決這個問題:

arr.OrderByDescending(z=>z).Take(2).Sum() 

注意排序是緩慢的,你可能實際上要找到最大,而不是兩次......

+0

doh!你打敗了我:) – Kell

+2

啊...... LINQ的美麗......讓人感到非常感謝在C#中進行生活編程。 –

0
 int[] arr = new int[] { 1, 2, 3, 4, 5 }; 
     int max = arr[0]; 
     int index = -1; 
     int total=0; 
     for (int i = 1; i < arr.Length; i++) 
     { 
      if (arr[i] > max) 
      { 
       max = arr[i]; 
       index = i; 
      } 

     } 
     if(index != -1) //if you have predecessor 
     total = max+arr[index-1]; 
     else   //if you don't have predecessor 
     total = max; 
3
var result = (from x in arr orderby x descending select x).Take(2).Sum(); 
相關問題