子数组的最大和

人员: 袁凤隆  杨子浩
设计思路:本次实验做的最大子数组的和,通过前面的知识,在上课时对一个一维数组的编写,在这个基础上做了一些改进。本次程序我们做的是能满足1000各元素的程序,定义数组类型是int32类型的。让程序能自己随机的产生1200个数组,通过随机数产生正负数。c语言的int的范围就是32,其范围是-2147483648~2147483647,通过判断子数组的最大和是否大于INT整形的最大范围来决定是否进行重新开始
.

源代码:
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int i,d; int max=0; int b=0; int c [1200]; srand(time(NULL)); for(i=0;i<1200;i++) { d=rand()%2; if(d==0) { c[i]=rand(); } else { c[i]=-rand(); } printf("%d ",c[i]); } for (i=0;i<1200;i++) { b+= c[i]; if(b<0) b=0; if(b>max) max=b; } if(max==0) { max=c[0]; for(i=0;i<1200;i++) { if(max<c[i]) { max=c[i]; } } } if(max>2147483647) printf("piease atart again\n"); printf("\n"); printf("maximum array is=%d\n",max); return 0; }
实验成果截图:

人员截图

总结:

通过本次实验进一步掌握了随机函数的使用方法,并且复习了C语言的一部分知识,关于数组的定义方法和应用。在本次实验中,开始有许多错误,通过分步调试一一解决了错误,在产生随机函数的过程中,开始总是产生的都是正数,通过随机0和1来产生负数,解决了本次实验的问题。期待下次实验。

猜你喜欢

转载自www.cnblogs.com/yzhztoutlook/p/9786531.html
今日推荐