求最大数组和

 设计思想:定义数组为1000个,选数时进行*42946578956,使数组内数字越界
 
#include <iostream>
 #include<stdlib.h>
 #include<time.h>
 using namespace std;

 int main()
 {
     int i;
     int a[10000];
     int max = 0;
     int b = 0;
 
     srand(time(NULL));
     cout<<"数组为:"<<endl;
     for (i = 0; i<10000; i++)
     {
         a[i] = rand() ;
     }
     for (i = 0; i<10000; i++)
     {
         cout << a[i] << ' ';
     }
     cout << endl;
 
     for (i = 0; i < 10000; i++)
     {
         b += a[i];
         if (b < 0)
             b = 0;
         if (b > max)
             max = b;
     }
     if (max == 0)
     {
         max = a[0];
         for (i = 0; i < 10000; i++)
         {
             if (max < a[i])
             {
                 max = a[i];
             }
         }    
     }
     cout <<"最大子数组为:"<< max << endl;
     system("pause");
     return 0;
 }

 无溢出

原文地址:https://www.cnblogs.com/mengweile/p/9787279.html