zoukankan      html  css  js  c++  java
  • 个人项目3

    1.要求:

    (1)实现在线答题

    (2)答题结束后,可以判断对错

    (3)并将错题的结果保存起来

    2.设计思想 :

     通过更改数组的长度将数组拟合成一个循环数组,将普通的一维数组A[n]的前n-1位数组数加到数组A[n]后面组成一个新的数组A[2n-1],再进行普通的一维数组的计算

    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() != ' ') //输入数组

      {

        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;

    }

    4.运行结果截图:

  • 相关阅读:
    Ensp模拟OSPF与ACL综合应用
    ENSP配置NAT
    Ensp配置RSTP
    EnspOSPF单区域配置
    Ensp配置静态路由和默认路由
    NotPron国外版
    MSF
    转换流
    梦之光芒1-14关通关秘籍
    php序列化与反序列化
  • 原文地址:https://www.cnblogs.com/cc173640639/p/10245010.html
Copyright © 2011-2022 走看看