我知道之前已经发布了这个帖子但是我试着去了 我尝试编码,但显示错误的结果!显然我的逻辑中有错误。有人可以解释一下我在哪里有错误吗?
这里我们假设数组按降序排序!
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 :(得分:0)
首先,a[bIndex]
似乎对我很怀疑。也许你想要b[bIndex]
?
对于其他任何事情,你必须更清楚你实际要解决的问题是什么(例子总是很好:)。您编写的代码似乎是从两个数组中添加k
个条目。现在,我将如何解释“在2个数组中找到第k个最大元素之和”。