子数组和最大值

#include <iostream>
#include <stdio.h>
using namespace std;

#define max 100
#define no  -9999

int main()
{
    int ary[max];
    int length;                //输入数组的长度
            
    for(int i=0;i<max;i++)
    {
        ary[i]=no;
    }
    
    cout <<"请输入整数数组:";    //输入
    while(getchar()!='\n')            //用于判断输入enter结束条件
    {
        for(int i=0;i<5;i++)
        {
            cin>>ary[i];
        }
    }
    for(int i=0;i<max;i++)        //计算整数数组长度
    {
        cout <<ary[i]<<"  ";
        if(ary[i]==no)
        {
            length=i;
            break;
        }
    }
    cout <<endl;
    cout <<length<<endl;
    int sum=0,
        mid=0;
    for(int i=0;i<length;i++)        //计算子数组和的最大值
    {
        if(mid<0)
            mid=ary[i];
        else
            mid=mid+ary[i];
        if(mid>sum)
            sum=mid;
    }

    cout <<"该整数数组中子数组最大值为:"<<sum<<endl;

    return 0;
}

 

 

遇到难题:

  自己输入几个整数在使用enter键判断输入结束时遇到难点。

解决方法

  将输入放在while循环中 利用条件 getchar()=='\n'判断是否为erter,若是则输入结束。

posted on 2016-04-07 14:54  菜鸟逛街  阅读(209)  评论(0编辑  收藏  举报