软件工程课堂作业(八)——结对开发(三)

一、题目及要求:

      题目:返回一个整数数组中最大子数组的和。

      要求(新加):①要求程序必须能处理1000个元素;②每个元素都是int32类型的。

      结对人员:焦燕   胡亚宝

二、设计思路:

      ①处理1000个元素的问题,我们将数组的长度设为1000,其中的每一个元素都是随机生成,因为这道题目重点是溢出问题,所以我们将它们设的值都比较大;

      ②现阶段我们将它们都设为int型,超过表示范围时,系统会自动转化成负值,判断后将显示溢出。

三、源代码:

 1 // 结对开发——焦燕   胡亚宝
 2 
 3 #include "stdafx.h"
 4 #include "stdlib.h"
 5 
 6 int _tmain(int argc, _TCHAR* argv[])
 7 {
 8     int i,j,a[1000]; 
 9     int Sum,Max;
10     printf("随机生成的数组为:\n");
11     for(j=0;j<1000;j++)
12     {
13         a[j]=rand()+100000000;
14         printf("%d\t",a[j]);
15     }
16 
17     Max = a[0];  
18     
19     for(i=0;i<1000;i++)  
20     {
21         Sum = 0;             
22         for(j=i;j<1000;j++)  
23         { 
24             Sum =Sum+ a[j];
25             if(Sum<=0)
26             {
27                 //printf("溢出!");
28                 Sum=0;
29             }
30             if(Sum > Max)  
31             {
32                 Max =Sum;    
33             }
34         }  
35     } 
36    
37     return 0;
38 }

四、测试及运行结果:

五、心得体会:

      这个题目是考察我们大数溢出的问题,之前我们写的程序几乎都没有考虑这些问题,这次也是提醒我们,在以后的编程中,大数溢出是不可忽视的问题。
      在思考思路的时候,我们首先设定了非常大的数,观察如果数据太大而超出定义变量能表示的范围将会怎样,我们发现,如果加的和值太大,系统将自动转化成一个非常大的负值,于是我们想到了随机生成的数组元素都设为正的大数,再一个个累加,如果和值出现负数,那么肯定是溢出问题,这样把结果显示出来。
      这次的合作我们两个一开始都没有头绪,和别的同学讨论过后才开始进行编写。这个小程序还是有不完善之处,比如解决这种溢出问题我们还是有点困难,在讨论过后希望能解决它。

 

附:合照

转载于:https://www.cnblogs.com/huyabaoboke/p/4373880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值