结对成员:范德一,赵永恒

一.题目:

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

二.要求:

  要求程序必须能处理1000 个元素;

  每个元素是int32 类型的;

  输入一个整形数组,数组里有正数也有负数。

  数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

  求所有子数组的和的最大值。

三.设计思路

在上一次的实验中,我们设置的数组的个数能够很好的进行扩展,所以对于第一个要求处理1000个元素比较容易实现;对于第二个要求,我们主要是想确定最大的数到底有多大,即什么时候会发生溢出的问题,当问题出现时程序怎么处理,通过查阅资料,我们最后确定了程序能够处理的最大数的取值,然后通过输出语句提示数组溢出。

四.源代码

  1 #include<iostream.h>
  2
  3 #include<time.h>
  4
  5 #include<stdlib.h>
  6
  7
  8
  9 int main()
 10
 11 {
 12
 13
 14
 15     srand((unsigned)time(NULL));
 16
 17
 18
 19     int a[1000];
 20
 21     int m;              //m是每组个数
 22
 23     int *sum=new int[1000];
 24
 25     cout<<"*********************************"<<endl;
 26
 27     for(int i=0;i<1000;i++)
 28
 29     {
 30
 31         int b;
 32
 33         b=rand()%2;
 34
 35         switch (b)
 36
 37         {
 38
 39             case 0:
 40
 41                     a[i]=rand()*350;
 42
 43                     break;
 44
 45             case 1:
 46
 47                     a[i]=-rand()*100;
 48
 49                     break;
 50
 51         }
 52
 53         cout<<a[i]<<"   ";
 54
 55         if((i%10)==9)
 56
 57         cout<<endl;         //每行10个输出,换行
 58
 59
 60
 61     }
 62
 63
 64
 65     cout<<"*********************************"<<endl;
 66
 67     int he=0;
 68
 69     for(m=1;m<1001;m++)
 70
 71     {
 72
 73         int temp=0;
 74
 75         for(int n=0;n<m;n++)
 76
 77         {
 78
 79             temp=temp+a[n];
 80
 81         }
 82
 83         for(int k=0;k<=(1000-m);k++)
 84
 85         {
 86
 87             sum[k]=0;
 88
 89             for(int j=k;j<(k+m);j++)  //a[k]是每组第一个数
 90
 91             {
 92
 93                 sum[k]=sum[k]+a[j];
 94
 95             }
 96
 97             if(sum[k]>temp)
 98
 99             {
100
101                 temp=sum[k];
102
103             }
104
105         }
106
107         if(temp>he)
108
109         {
110
111             he=temp;
112
113         }
114
115     }
116
117     if(he>2100000000)
118
119     {
120
121         cout<<"数组溢出!"<<endl;
122
123     }
124
125     else
126
127     {
128
129         cout<<"最大子数组的和为: "<<he<<endl;
130
131     }
132
133     cout<<"*********************************"<<endl;
134
135     return 0;
136
137 }

五.运行截图

六、感想

这次实验在随机出现数的那里我们停留了很长时间,主要是不知道rand函数也是有取值范围的。在接组的开发中,我们都有一点自己的想法。最后总结在了一起,尤其是在编程的过程中,我们谁都想往上写一点,一个程序总是在加入自己的设计思路和代码的风格。我觉得一个团队还是应该把风格和规范尽量的一致,才能让团队更好的工作起来。

附:

转载于:https://www.cnblogs.com/fan123/p/4376537.html

结对开发4----最大子数组(大数溢出)相关推荐

  1. 结对开发——一维数组最大子数组判断溢出

    一 题目 求一维数组最大子数组和 要求:1000个数以上,整数 二.设计思路 最大子数组很好找到,但是子数组和的溢出问题很难解决. 经过不断的思考,我得出了结论: 溢出是程程序设计者设计时的不足所带来 ...

  2. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

  3. 结对开发--求二维数组的最大子数组

    小组成员:信1201-1班  黄亚萍 信1201-1班  袁亚姣 一.题目要求 程序要使用的数组放在一个叫 input.txt 的文件中,  文件格式是: 数组的行数, 数组的列数, 每一行的元素,  ...

  4. 结对开发——返回一个整数数组中最大子数组的和

    一.题目要求 1.输入一个整型数组,数组里有正数也有负数. 2.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为O(n). 二.设计思想 ...

  5. 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...

  6. 结对开发项目:求整数数组中连续子数组和的最大值

    小组成员:安娜 王鑫楠 题目二:求整数数组中连续子数组和的最大值. 1.分析过程: 题目收到后,前五分钟设计算法,首先也想到是不是一次遍历可以解决,考虑了一下觉得难度有点大最后还是果断放弃.我刚开始的 ...

  7. 结对开发 随机产生数组并求最大子数组的和

    一.题目 返回一个整数数组中最大子数组的和. 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O( ...

  8. 结对开发2(求二维数组的最大子数组和)

    一,题目要求: 输入一个二维数组,求出此二维数组的最大子数组和. 二,设计思路: 利用for循环进行遍历,求出数组中每一个子数组的和,最终求出这些子数组的最大的一个值.程序中利用了调用函数,被调函数分 ...

  9. 结对开发——环形一维数组求最大子数组和

    题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[ ...

最新文章

  1. 《iOS 8应用开发入门经典(第6版)》——第1章,第1.6节小结
  2. 用MATLAB作图像识别所需要注意的细节!
  3. Visdom数据可视化工具绘制Loss曲线
  4. Divan and Kostomuksha (easy version) dp,gcd(2100)
  5. LeetCode119.杨辉三角II
  6. Tomcat 下 Memcached 集群与 Terracotta 集群比较
  7. codeforces 231A-C语言解题报告
  8. 什么是Hystrix,Hystrix简单概述
  9. 转:C#读取PDF、TXT内容
  10. 分布式事务解决方案之可靠消息最终一致性
  11. 【python教程入门学习】拒绝反爬虫!教你搞定爬虫验证码
  12. SICP 练习1.8
  13. centos/redhat kernel-debug-info-xx.rpm与kernel-debuginfo-xx.rpm区别
  14. 今日头条(App和MainActivity类)
  15. mysql 字符串截取,拼接
  16. Android(cacerts.bks)添加根证书
  17. java8 .map是什么意思_JDK8 stream().map() 作用
  18. 基于jeecgboot的支持flowable的排它网关之后的会签功能(二)
  19. 图片循环滚动代码(无缝滚动)
  20. bootstrap rol 的作用

热门文章

  1. html编写组织结构,编写模块化的CSS:CSS文件组织结构
  2. java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解
  3. Kubernetes 核心概念
  4. 回顾 | Alibaba Cloud Native Day 杭州场圆满结束(附 PPT 下载)
  5. 深圳快测计算机技术有限公司,口罩快速检测出数据口罩快检预检办理
  6. python包导入细节_python循环导入是一个实现细节吗?
  7. python35是什么意思_python -m是什么意思CentOS 升级 Python3 (附带: 一键升级脚本)...
  8. @autowired注解原理_相见恨晚,一个架构师也不会用的Lombok注解
  9. java jxl map,jxl操作Excel
  10. centos 一键安装ftp 配置_CentOS快速搭建FTP(初级-四步)