| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1712 人关注过本帖
标题:几道编程题答案寻求
只看楼主 加入收藏
ysjlch
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-17
收藏
得分:0 
那个我是个新手  今天看了着个帖子 动手试了下 发现是错的 2楼 5楼 9楼的是都出错了主要是在 当 Ni>(Ni+1)+(Ni+2)或>Nj 的时候就回出错  那个9楼就是着现象
下面是小弟弄的 貌似对了 随便看看把 我自己也有点乱
#include <stdio.h>
int maxsubstr(int n, int *a, int *start, int *end)
{
    int sum=0, i,b=0,b_negative=1;
    *start=0;
    for(i=0;i<n;i++)
    {
        b= b>0? (a[i]+b) : a[i];
        if(b>sum)
        {
            sum=b;
            *end=i;       /* 记录结束点 */
        }
        if(b_negative && b>=0)
            *start=i;     /* 如果b从负数变为正数,则更新子段起始点 */
        b_negative=b<0? 1:0;   /* 设置b是否为负数的标记 */
    }
    return sum;
}

void main()
{
     int a[]={-2,80,-40,-50,45,20,21,-25,30,2};
     int start,end;
     int sum=maxsubstr(sizeof a / sizeof a[0],a,&start,&end);
     printf("\nsum[%d, %d]=%d\n",start,end,sum);
}

[[it] 本帖最后由 ysjlch 于 2008-3-17 19:47 编辑 [/it]]
2008-03-17 19:25
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:0 
[bo]以下是引用 [un]ysjlch[/un] 在 2008-3-17 19:25 的发言:[/bo]

那个我是个新手  今天看了着个帖子 动手试了下 发现是错的 2楼 5楼 9楼的是都出错了主要是在 当 Ni>(Ni+1)+(Ni+2)或>Nj 的时候就回出错  那个9楼就是着现象
下面是小弟弄的 貌似对了 随便看看把 我自己也有点乱
#inc ...

复制我代码?,啥意思?
2008-03-17 22:14
快速回复:几道编程题答案寻求
数据加载中...
 
   



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

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