输出一维环形数组中最大子数组和最大子数组的位置

组员 石鹤李海超

一、题目

输出一维环形数组中最大子数组的和 和最大子数组的位置

二、设计思想

把原数组扩大一倍,再把原数组放到后边,只需改变上次试验是循环变量即可求出最大子数组的和。

三、源代码

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
int main()
{
    int arry[20];
    int start,end,i;
    long sum,max;
    cout<<"Please input 10 numbers:"<<endl;
    for( i=0;i<10;i++)
    {
        cin>>arry[i];
        arry[i+10]=arry[i];
    }
    max=arry[0];
    start=0;
    end=0;
    for(int j=0;j<10;j++)
    {
        sum=0;
        for(int k=j;k<10+j;k++)
        {
            sum=sum+arry[k];
            if(sum>max)
            {
                max=sum;
                start=j+1;
                end=k+1;
            }
        }
    }
    cout<<"MAX IS"<<" "<<max<<endl;
    cout<<"START:"<<"The"<<" "<<start<<"th"<<" "<<"number"<<"    "<<"END:"<<"The"<<" "<<end%10<<"th"<<" "<<"number"<<endl;
    cout<<"These numbers are:";
    for(int c=0;c<end-start+1;c++)
    {
        cout<<arry[start+c-1]<<"  ";
    }
}

四、结果截图

五、实验心得

实验中没有遇到太大问题,我俩显示讨论得出了设计思想,然后经过对上次题目的改进的除了这次试验的程序,运行正确。

希望以后继续进步。

六、相片

 

转载于:https://www.cnblogs.com/weaponx/p/4378805.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值