【发布时间】:2021-03-19 13:28:23
【问题描述】:
你好,我正在尝试解决一个关于列表中最大和的数字序列的练习: 我需要编写一个(非递归)函数来返回列表中最大的数字总和。 例子: 在列表中:[-1,4,-10,9,14,-4] 需要返回 23,因为 9+14=23 及其在此列表中的最大总和。 我是 C 的初学者,不知道如何在 C 中使用带有列表的 deboguer? 你能帮我理解我的问题在哪里吗?
int sum_lst(int lst[],int debut,int fin){
int i=debut,sum=0;
for (i;i<fin;i++){
sum+=lst[i];
}
return sum;
}
int max_sum(int lst[],int n){
int i=n;
static int sum;
int j=0;
for (i;i>0;i--){
for (j;j<n;j++){
if (sum_lst(lst,j,i)>sum){
sum= sum_lst(lst,i,j);
}
}
}
return sum;
}
【问题讨论】:
-
Bonjour :),您应该首先找到两个最大的数字并将它们相加。最好不给你答案(很简单)
-
1> 对列表进行降序排序(可能使用库排序)2> 获取前两个项目(如果降序排序,则获取最后两个)3> 瞧
-
@DDS
[10, -20, -30, 40, -50]的输出应该是什么? -
50,当然:排序后的向量将是
[50, 40, -20, -30, -50],但这取决于您如何实现排序的比较功能。记住:如果标准库有它的功能,就使用它。