软件工程课堂练习--结对开发

一、题目及要求:

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

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

二、设计思路

这次练习依然是在之前一维数组的基础上完成的,此次的首要问题是要求程序能处理1000个数据并要求元素是int32型,所以会存在大数溢出问题,我们的想法就是将它找出并做 出警告

三、源程序

 1 //结对人员 盖相庚 曹美娜
 2
 3 #include "stdafx.h"
 4 #include "stdio.h"
 5 #include"stdlib.h"
 6 #include"time.h"
 7 #define N 1000
 8 int compare( int arry[],int length)
 9 {
10     int max[N],max1;
11     for(int j=0;j<length;j++)
12     {
13         int sum=0;
14         max1=-987654321;
15         for(int i=j;i<length;i++)
16         {
17             sum=sum+arry[i];
18             if(sum<0)              //判断其是否溢出
19             {
20                 printf("数值溢出!\n");
21                 return 0;
22             }
23             else if(sum>=max1)
24             {
25                 max1=sum;
26             }
27         }
28         max[j]=max1;
29         printf("包含数组中第%d个数的所有子数组中和最大的值为:%d\n",j+1,max[j]);
30     }
31     int fmax=max[0];
32     for(int i=0;i<length;i++)
33     {
34         if(max[i]>fmax)
35             fmax=max[i];
36     }
37     printf("所有子数组的和的最大值为:%d\n",fmax);
38     return 0;
39 }
40 int main(int argc, char* argv[])
41 {
42     int arry[N];
43     int length;
44     srand(time(NULL));
45     printf("请输入要比较整数的个数:");
46     scanf("%d",&length);
47
48     for(int i=0;i<length;i++)
49     {
50         arry[i]=rand()+100000000;
51
52     }
53     printf("随机产生的数组为:\n");
54     for( i=0;i<length;i++)
55     {
56         printf("%d\t",arry[i]);
57
58     }
59     compare(arry,length);
60     return 0;
61 }

四、截图

五、心得体会

由于处理1000个数据出来的结果太长,所以我输入的是100个元素,其实1000个元素是能处理的,在程序中可以看出,我随机生成的元素比较大,所以就会出现大数溢出这种现象,然后程序找出,并提示数值已经溢出啦,结果会出现错误,程序就自己停止了

时间: 2024-12-28 04:23:37

软件工程课堂练习--结对开发的相关文章

软件工程课堂训练——结对开发之环数组最大和

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①如果数组A[0]...A[j-1]首尾相邻,允许A[i-1]...A[n-1],A[0]...A[j-1]之和最大:②同时返回最大子数组的位置. 结对人员:胡亚宝  焦燕 二.设计思路: 我们要解决两个问题:求出环数组中最大的子数组:并且定位出该子数组的位置,把它们的名称输出来.要解决这两个问题,我们从以下两个方面入手: ①求出最大子数组:将数组数值按顺序排好称为“一趟”,每求出一趟的最大子数组后,将第一个数值放到最后一个

软件工程课堂训练——结对开发之环状二维数组

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①输入一个二维整形数组,数组里有正数也有负数:②二维数组首尾相接,像一条首尾相接的带子一样. 结对人员:胡亚宝  焦燕 二.设计思路: 这个题目其实就是二维数组和环型数组的结合,要解决这个问题,将之前的两个问题融合一下即可. 首先解决求出二维数组中最大子数组的问题,然后沿用一维数组的方法,将第一列放到最后一列,在求出新的二维数组的最大子数组,依次求出各个二维数组的最大子数组. 三.部分源代码: 1 for (m=0;m<5;

软件工程课堂训练——结对开发

一.题目及要求: 1.题目:返回一个整数数组中最大子数组的和. 2.要求: ①输入一个整形数组,数组里有正数也有负数:数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和:求所有子数组的和的最大值:要求时间复杂度为O(n). ②两人结对完成编程任务:一人主要负责程序分析,代码编程,一人负责代码复审和代码测试计划. 3.结对人员:胡亚宝  焦燕 二.设计思路: ①第一个方法,定义一个数组,将所有的子数组都列出来,再将它们的和都求出来放到该数组中,再求最大值,输出.但是在编写过程中,我们发

软件工程课堂练习--结对初体验

结队人员 信1201-1班 曹美娜 袁亚姣 一.题目要求与结对开发要求 1.题目: 返回一个整数数组中最大子数组的和. 2.要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 3.结对开发要求 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 二.程序设计

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

一.题目及要求: 1.题目:返回一个整数数组中最大子数组的和. 2.要求: ①输入一个整形数组,数组里有正数也有负数:数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和:求所有子数组的和的最大值:要求时间复杂度为O(n). ②两人结对完成编程任务:一人主要负责程序分析,代码编程,一人负责代码复审和代码测试计划. 3.结对人员:胡亚宝 焦燕 二.设计思路: ①第一个方法,定义一个数组,将所有的子数组的和都求出来放到该数组中,再求最大值,输出.但是在编写过程中,我们发现如果用循环方式存放

软件工程课堂作业(九)——结对开发(四)

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①如果数组A[0]...A[j-1]首尾相邻,允许A[i-1]...A[n-1],A[0]...A[j-1]之和最大:②同时返回最大子数组的位置. 结对人员:焦燕   胡亚宝 二.设计思路: 我们要解决两个问题:求出环数组中最大的子数组:并且定位出该子数组的位置,把它们的名称输出来.要解决这两个问题,我们从以下两个方面入手: ①求出最大子数组:将数组数值按顺序排好称为“一趟”,每求出一趟的最大子数组后,将第一个数值放到最后一

课堂练习之结对开发项目思想总结

一.思想过程 老师课上让我们结对合作开发一个小程序,起初思想比较混乱,但在与雪东交流后一个想法渐渐浮现了出来,但在循环控制上仍然存在着缺陷.今天是满课的,所以我本打算在晚上自习的时候尝试去理清自己的思路,再与雪东进行交流.谁知在我刚到自习室,他便拿着笔记本来找我探讨,而且他已经写出了自己的想法,不过可能比较笨拙,在数组数量变化时需要一次一次的去输入程序,所以我们的探讨从如何实现老师的问题便到了如何更好的去实现老师的问题,增加程序的可扩展性. 在此次合作中我们真的就像驾驶员和领航员一样,一台电脑,

3月31号周二课堂练习:结对开发----求二维数组组成的矩阵中子矩阵的最大值二

一.题目要求 1.1输入一个二维整形数组,数组里有正数也有负数. 1.2二维数组首尾相接,象个一条首尾相接带子一样. 1.3数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 1.4求所有子数组的和的最大值.要求时间复杂度为O(n). 二.结对要求 2.1两人结对完成编程任务. 2.2一人主要负责程序分析,代码编程. 2.3一人负责代码复审和代码测试计划. 2.4发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 三.设计过程 上次已经算过二维数组中

结对开发--课堂练习--c++

一.题目与要求 题目: 返回一个整数数组中最大子数组的和. 要求: 入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照).(截止到周四3月19日24:00) 二.结对开发过程 1.(课上)开始我俩一起审题