2011-08-18 158 views
0

我知道這已經發布過,但我試圖在我的路上做 我試圖編碼,但是顯示錯誤的結果!顯然在我的邏輯中有錯誤。任何人都可以請解釋我在哪裏有錯誤?找到第2個元素中第k個元素的最大值

這裏我們假設數組按降序排序!

int kthlargestsum(int a[], int b[],int k) 
{ 
    int aIndex=0; 
    int bIndex=0; 
    int sum=0; 
    int i; 
    for(i=0;i<k;++i) 
    { 
     if(a[aIndex]>b[bIndex]) 
     { 
      sum+=a[aIndex]; 
      ++aIndex; 
     } 
     else 
     { 
      sum+=a[bIndex]; 
      ++bIndex; 
     } 
    } 
printf("the output is %d",sum); 
} 

main() 
{ 
    int a[]={10,9,6,4,2}; 
    int b[]={11,9,7,1}; 
    int k; 
    printf("enter the value of k \n"); 
    scanf("%d",&k); 
    kthlargestsum(a,b,k); 

} 
+0

閱讀並理解此問題的解決方案:http://stackoverflow.com/questions/5212037/find-the-kth-largest-sum-in-two-arrays – PengOne

回答

0

首先,a[bIndex]似乎懷疑我。也許你想要b[bIndex]

對於其他任何事情,你必須更清楚你想要解決的問題實際上是什麼(例子總是很好:)。你的代碼似乎是從兩個數組中加起來k條目。這現在是我將如何解釋「查找第2個元素中第k個最大的元素」。

+0

let say k = 3 ..所以第三大總和將會是19 ...它將如下 - 1st-10 + 11,2nd-11 + 9,3rd-10 + 9 –

+0

@learning_bee:你似乎假設數組按降序排列。如果確實如此,那麼請編輯您的問題以反映這一關鍵假設。此外,在這種情況下,我上面的更正將修復您的代碼。 – PengOne

+0

我試過你的......但它顯示30作爲輸出 –