课堂练习:
题目:要求返回一个整数数组中最大子数组的值
要求:程序必须能处理1000个元素
每个元素是int32类型的
设计思路:
将数组的大小定义为1000,每个元素定义为int32类型,取数值时对数成2的32次方,这样数值可以越界。
程序:
#include <iostream> #include<stdlib.h> #include<time.h> using namespace std; int main() { int i; int a[1000]; int max = 0; int b = 0; srand(time(NULL)); cout<<"数组为:"<<endl; for (i = 0; i<1000; i++) { a[i] = rand(); } for (i = 0; i<1000; i++) { cout << a[i] << '\t'; } cout << endl; for (i = 0; i < 1000; i++) { b += a[i]; if (b < 0) b = 0; if (b > max) max = b; } if (max == 0) { max = a[0]; for (i = 0; i < 1000; i++) { if (max < a[i]) { max = a[i]; } } } cout <<"最大子数组为:"<< max << endl; system("pause"); return 0; }
运行结果:
合影: