免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: whpu000625
打印 上一主题 下一主题

求一个数组中最大的相邻元素之和 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
21 [报告]
发表于 2004-12-29 13:30 |只看该作者

求一个数组中最大的相邻元素之和

assiss:
      if(m[i-1]<=0 && m>;0)
      {
         sum2=m;
         start2=i;
      }
这样子是不行的
int m[10] = {2, 3, -6, 3, 4, 3, -7, 5, 3, -3};
start 3, end 5, sum 10

论坛徽章:
0
22 [报告]
发表于 2004-12-29 13:35 |只看该作者

求一个数组中最大的相邻元素之和

原帖由 "yuxh" 发表:
, 3, -6, 3, 4, 3, -7, 5, 3, -3};
start 3, end 5, sum 10

已经改了.嘿嘿.这次速度比你快一点.刚贴出来就看到错了......不过你F5的速度也太快了吧???

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
23 [报告]
发表于 2004-12-29 13:37 |只看该作者

求一个数组中最大的相邻元素之和

F5是啥东西?
我看你们两个的程序看得累死
    

论坛徽章:
0
24 [报告]
发表于 2004-12-29 13:43 |只看该作者

求一个数组中最大的相邻元素之和

原帖由 "yuxh" 发表:
F5是啥东西?
我看你们两个的程序看得累死
    

习惯上把刷新说成"F5",呵呵,当年用IE落下的毛病.
我第一次贴出修改的程序,里面有你说的问题.但我在很短的时间内就修改了,竟然还是让你看到了,嘿嘿,所以说你的F5速度很快.
你的算法功底太强了,怎么学的?我现在设计算法,总会出错,然后一点一点修改,最后得到一个也不知道是不是正确的结果.不知道是不是因为太懒了,不肯从数学角度上考虑这个问题.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
25 [报告]
发表于 2004-12-29 13:50 |只看该作者

求一个数组中最大的相邻元素之和

偶以前数学系的,大学里就学过BASIC
对于复杂一点的问题先在纸上列一下,把数学问题先搞清楚,不要急着写程序,不然出了问题也不知道什么问题,一点一点地改,把别人看出来的问题补掉,但也不明白最后还会不会出问题,这样不好。

论坛徽章:
0
26 [报告]
发表于 2004-12-29 14:02 |只看该作者

求一个数组中最大的相邻元素之和

原帖由 "assiss" 发表:

习惯上把刷新说成"F5",呵呵,当年用IE落下的毛病.
我第一次贴出修改的程序,里面有你说的问题.但我在很短的时间内就修改了,竟然还是让你看到了,嘿嘿,所以说你的F5速度很快.
你的算法功底太强了,怎么学的?我现在设计..........

nod,yuxh的算法就是厉害!

论坛徽章:
0
27 [报告]
发表于 2004-12-29 14:08 |只看该作者

求一个数组中最大的相邻元素之和

原帖由 "yuxh" 发表:
偶以前数学系的,大学里就学过BASIC
对于复杂一点的问题先在纸上列一下,把数学问题先搞清楚,不要急着写程序,不然出了问题也不知道什么问题,一点一点地改,把别人看出来的问题补掉,但也不明白最后还会不会出问�.........
受益匪浅啊.数学系出来的就是不一样.做程序果然很有前途.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
28 [报告]
发表于 2004-12-29 15:22 |只看该作者

求一个数组中最大的相邻元素之和

[quote]原帖由 "assiss"]芤娣饲嘲

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
29 [报告]
发表于 2004-12-29 16:20 |只看该作者

求一个数组中最大的相邻元素之和

aero言之有理,这样的话可以把end1也去掉
  1. void MaxSum(int *ary, int n)
  2. {
  3.     int i, start=0, end=0, start1=0, max, sum;

  4.     max=ary[0];
  5.     for(i=1;i<n && ary[i]<=0;i++)
  6.     {
  7.        if(ary[i]>;max)
  8.        {
  9.           max=ary[i];
  10.           start=end=i;
  11.        }
  12.     }
  13.     sum = max >; 0 ? max : 0 ;
  14.     for(; i<n; i++) {
  15.         if(ary[i] >; 0 && sum <= 0)
  16.             start1 = i;
  17.         sum += ary[i];
  18.         if (sum >; max) {
  19.              start = start1;
  20.              end = i;
  21.              max = sum;
  22.         }
  23.         else if(sum < 0)
  24.             sum = 0;
  25.     }
  26.     printf("start %d, end %d, sum %d\n", start, end, max);
  27. }
  28. main()
  29. {
  30.     int m[10] = {2,3,-6,3,4,3,-2,5,2,-3};

  31.     MaxSum(m, 10);
  32. }

复制代码

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
30 [报告]
发表于 2004-12-29 16:29 |只看该作者

求一个数组中最大的相邻元素之和

有个错误,上面的程序已更正!

失败!又发现一个错误,上面的程序再次作了更正
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP