Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 列表中的和的练习_Arrays_C_List_Sum - Fatal编程技术网

Arrays 列表中的和的练习

Arrays 列表中的和的练习,arrays,c,list,sum,Arrays,C,List,Sum,您好,我正在尝试解决一个关于最大和列表中的数字序列的练习: 我需要编写一个(非递归)函数,返回列表中最大的数字和。 例子: 在列表中:[-1,4,-10,9,14,-4] 需要返回23,因为9+14=23及其在该列表中的最大和。 我是C语言的工程师,不知道如何使用deboguer和C语言中的list? 你能帮我弄清楚我的问题在哪里吗 int sum_lst(int lst[],int debut,int fin){ int i=debut,sum=0; for (i;i<f

您好,我正在尝试解决一个关于最大和列表中的数字序列的练习: 我需要编写一个(非递归)函数,返回列表中最大的数字和。 例子: 在列表中:[-1,4,-10,9,14,-4] 需要返回23,因为9+14=23及其在该列表中的最大和。 我是C语言的工程师,不知道如何使用deboguer和C语言中的list? 你能帮我弄清楚我的问题在哪里吗

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;
}
int sum_lst(int lst[],int首秀,int fin){
int i=首次登场,总和=0;
对于(i;i0;i--){
对于(j;jsum){
sum=sum_lst(lst,i,j);
}
}
}
回报金额;
}

  • 在(j;jBonjour:)的
    处的每个循环之前,您忘记初始化
    j
    ,您应该首先找到两个最高的数字,并将它们相加。如果我们不给你答案就更好了(这很容易)1>对列表进行降序排序(可能使用库排序)2>获取前两项(或者如果进行降序排序,则获取最后两项)3>voila@DDS
    [10,-20,-30,40,-50]
    的输出应该是什么?不知道如何使用调试器?那就让我们学习吧!50,当然:排序向量将是
    [50,40,-20,-30,-50]
    ,但这取决于如何实现排序的比较函数。记住:如果标准库有一个函数,就用它吧。嗨,谢谢你的帮助,我不明白你为什么说我交换i和ji,虽然这很好
    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;
        if (n<=0) return 0;
        sum = lst[0]; /* initialize sum */
        for (i;i>0;i--){
            for (j=0;j<n;j++){ /* initialize j */
                if (sum_lst(lst,j,i)>sum){
                    sum= sum_lst(lst,j,i); /* don't swap i and j */
                }
            }
        }
        return sum;
    }