个人项目3

要求:

1、实现在线答题;

2、答题结束后,可以判断对错;

3、并将错题的结果保存起来。

编程代码

#inc,lude <iostream>

using namespace std;

#define N 1000

int main(int argc, char* argv[])

{

  int arry[N];

  int length=1;

  int max[N],max1; //max[N]

  int maxweizhi[N];

  int num=0;

  int value( int arry[],int length);

  cout<<"请输入数组:"<<endl;

  cin >> arry[0];

  while (getchar() != '\n') 

  {

    cin >> arry[length];

    length++;

  }  

  for(int j=length;j<2*length-1;j++) 

  {

    arry[j]=arry[num];

    num++;

  }

  cout<<"由这几个数形成的环形数组";

  value(arry,2*length-1);

  return 0;

}

int value( int arry[],int length)

{

  int max[N],max1;

  int maxweizhi[N];

  for(int j=0;j<(length+1)/2;j++)

  {

    int sum=0;

    max1=-9999999; 

    int z=0;

    for(int i=j;i<(length+1)/2+j;i++) 

    {

      sum=sum+arry[i];

      if(sum>=max1)

      {

        max1=sum;

        z++;

      }

    }

    max[j]=max1;

    maxweizhi[j]=z;

  }

  int fmax=max[0];

  int q=0;

  for(int i=0;i<(length+1/2);i++) 

  { 

    if(max[i]>fmax)

    {

      fmax=max[i];

      q=i;

    }

  }

  int weizhi=maxweizhi[q];

  cout<<"最大子数组为:"<<endl;

  for(int num=q;num<q+weizhi;num++)

  {

    cout<<arry[num];

  }

  cout<<"其和为: "<<fmax<<endl;

  return 0;

}

posted on 2019-01-10 04:28  失望来于期望  阅读(123)  评论(0编辑  收藏  举报

导航