C++代码有木有大佬帮一下忙,怎么把最大子序列也输出出来。

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-5-21

代码如下,有两个,不知道怎么输出最大子序列。#includeint Maxsum(int a[],int n){ int i,j,k; int maxSum=0,curSum; for(i=0;imaxSum) maxSum=curSum; } } return maxSum;} int main(){ int n; printf("输入序列元素个数:"); scanf("%d",&n); int a[n]; printf("输入序列元素:"); for( int i;iint Maxsubsum(int a[],int Left,int Right){ int Center,i,Leftsum,Rightsum,Leftbordersum=0,Rightbordersum=0,Maxleftbordersum=0,Maxrightbordersum=0,max; //Center为中间的界线,Leftsum为递归过程中的左边最大,Rightsum为递归过程中的右边最大,Ma //xleftbordersum为中间靠左的最大,Maxrightbordersum为中间靠右的最大,max为三者最 if(Left==Right) { if(a[Left]>0) return a[Left]; else return 0; }/*基线条件*/ Center=(Left+Right)/2; Leftsum=Maxsubsum(a,Left,Center);//递归调用,分的过程 Rightsum=Maxsubsum(a,Center+1,Right);//递归调用,分的过程 for(i=Center;i>=Left;i--) { Leftbordersum+=a[i]; if(MaxleftbordersumLeftsum?Rightsum:Leftsum; max=max>(Maxleftbordersum+Maxrightbordersum)?max:Maxleftbordersum+Maxrightbordersum;//三者最大 return max;//返回值}int main(){ int n; printf("输入序列元素个数:"); scanf("%d",&n); int b[n]; printf("请输入元素:"); for(int i=0;i

沙发
Lu 2022-5-21
Maxsun(a,n)就是啊
板凳
LV是非 2022-5-21
本版块禁止发布求助,可尝试发布悬赏贴。
我可能描述错了,是把那个最大子序列输出出来,那个maxsum(a,n)不是最大的和吗

评论

登录后才可发表内容
  • 主题

    1

  • 帖子

    1

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.1061s Mem:2080Kb