子数组的最大和

人员: 袁凤隆  杨子浩
设计思路:本次实验做的最大子数组的和,通过前面的知识,在上课时对一个一维数组的编写,在这个基础上做了一些改进。本次程序我们做的是能满足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来产生负数,解决了本次实验的问题。期待下次实验。

转载于:https://www.cnblogs.com/yzhztoutlook/p/9786531.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值