第二次作业

#include <stdio.h>
#include <stdlib.h>`
#include<cstdlib>
#include<ctime>
#include<iostream>
using namespace std;
int SetRandomNember()
{
 int a;
 srand((unsigned)time(NULL));
 a = rand() % (20001) + (-10000);
 return a;
}
int main()
{
 int  i, sum = 0;
 int a[10000];
 for (i=0 ; i <10000; ++i)//输入数组
 {
  a[i]=SetRandomNember();
 }
 int max=a[0];
 int* p = &max;//指针p指向变量max
 for (i=0; i <=9999; ++i)
 {
  sum = sum + a[i];
  if (sum < a[i])
  {
   sum = sum + a[i];
  }
  if (sum > max)
  {
   max = sum;
  }
  *p = max;//将max的值存储进指针*p所指的空间
 }
 cout << "max is " << *p << endl;
}

修改之后可以通过随机数来构建大型数组,在随机生成的数组寻找最大子数组之和

posted @ 2019-10-23 23:48  sunjichen  阅读(76)  评论(0)    收藏  举报