Найти k-ую наибольшую из суммы элементов в массиве 2 - PullRequest
0 голосов
/ 19 августа 2011

Я знаю, что это было опубликовано ранее, но я пытался сделать на своем пути, я пытался кодировать, но это показывает ошибочный результат!очевидно, в моей логике есть ошибка .. кто-нибудь может объяснить, где у меня ошибка?

здесь мы предполагаем, что массивы отсортированы в порядке убывания!

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);

}

1 Ответ

0 голосов
/ 19 августа 2011

Прежде всего, a[bIndex] мне кажется подозрительным. Возможно, вы хотите b[bIndex]?

Во всем остальном вам нужно будет более четко понять, в чем заключается проблема, которую вы пытаетесь решить (примеры всегда хороши :). То, что вы делаете с кодом, это добавление k записей из двух массивов. Вот как я могу интерпретировать «Найти k-ую наибольшую из суммы элементов в массиве 2».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...