标题:最大子段和!求错误指正!
取消只看楼主
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
结帖率:80%
已结贴  问题点数:4 回复次数:1 
最大子段和!求错误指正!
题目:给出一个数列(元素个数不多于 10000),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列(这个子序列可以为空序列),使得这个子数列中包含的所有元素之和最大.输出这个最大和。例如数列为 4,-5,3,2,4 时,输出 9 ;数列为 1 2 3 -5 0 7 8时,输出 16。说明:如果这个最大和是负数,那么取0为最终答案。
输入样例
7
1 2 3 -5 0 7 8
输出样例
16
问题:我自己写的代码交上去后测试的一些数据是对的,但是还是有测试数据是错误的,不知道代码错在哪了,求大神看一看!
#include<stdio.h>
int maxAdd(int list[],int n)
{
    int max;
    int sum,i,j,k;
    max=0;
    for(i=0;i<n;i++){
        for(j=i;j<n;j++){
            sum=0;
            for(k=i;k<=j;k++){
                sum=sum+list[k];
            }
            if(max<sum){
                max=sum;
            }
        }
    }
    return max;
}
int main()
{
    int n;
    int list[10001];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&list[i]);
    }
    if(maxAdd(list,n)<0){
        printf("0\n");
    }
    else{
        printf("%d\n",maxAdd(list,n));
    }
    return 0;
}

搜索更多相关主题的帖子: 最大 数列 int list sum 
2019-03-01 21:44
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
得分:0 
嗷这个我也试过,但是这个也有测试数据错误
100
-28 -20 0 -30 40 -37 -6 -22 40 2 38 -19 19 45 -21 25 -36 16 -41 11 26 -11 -45 29 -39 -7 -33 -29 2 -26 48 41 -38 0 -17 -20 30 -30 -49 29 49 23 -2 20 -32 -8 8 -6 10 -48 49 12 48 -9 8 9 -37 -33 4 -3 38 -11 26 4 29 -18 -5 -22 -50 1 43 -36 -46 16 21 -12 15 -3 13 -32 37 3 16 48 -31 16 47 -19 13 18 7 -27 18 -19 -1 44 -22 43 -34 19
这是他给出来的错误测试数据,所以我就很懵逼了
2019-03-02 10:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-493323-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.321423 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved