软件工程概论第三周测验---最大子数组

1,设计思想:求出所有连续子数组的和,然后进行数组和的比较。一边求和,一边比较大小数组里面有正数有负数,当与负数相加,如果和小于等于0,和等于未加负数之前的和,与正数相加则等于加正数之后的和。

2,代码:

#include<iostream>

#include<new>

using namespace std;

 

int main()

{

int n,i,sum=0;

int *p;

    cout<<"请输入数组的长度:"<<endl;

cin>>n;

p=new int[n];//动态申请空间

if (p == NULL)//申请是否成功判断

{

cout << "错误!"<<endl; 

        return 1;

}

int max=p[0];

cout<<"请输入数组内的数:"<<endl;

for(i=0;i<n;i++)

{

cin>>p[i];

}

    for(i=0;i<n;i++)

    {

       if(sum<=0)

       {

          sum=p[i];         

       }

       else

       {

           sum=sum+p[i];    

       }

       if(sum>max)

       {

           max=sum;

       }

    }

        cout<<"子数组和的最大值为:"<<max<<endl;

delete [] p;//释放动态空间

return 0;

 

}

 

3,截图:

 

4,总结:题目给我第一反应就是用数组来写,所以我就去找了大一下半年关于数组的程序,动态数组的程序和这个有些许类似,有所借鉴。一开始的思路是将数组中的每个数进行定义,然后相加,后来实行过程中比较麻烦。但是前一种思路相对简单吧。又复习了一遍数组解决问题编写程序的方法,感觉对数组的运用不是很好。

 

  姓名:朱慧敏                                                            日期:3/22

任务/日期

听课

编程序

阅读课本

准备考试

 

 

日总计

周五

210

 

 

83

 

 

293

周六

 

173

105

81

 

 

369

周日

 

365

 

 

 

 

365

学生:朱慧敏                             日期:3/22/2015

教师:王建民                             课程:软件工程概论

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3/20

10:00

12:00

10

110

上课

软件工程概论

 

2:00

3:50

10

100

上课

概率论

 

20:23

21:46

 

83

写作业

数据库

3/21

10:23

11:44

 

81

写作业

数据库概率论

 

15:45

17:30

 

105

看书

梦断代码

 

19:30

22:23

 

173

编程序

数组

3/22

8:30

16:00

 

 

运动休息

骑行

 

16:20

23:05

40

365

编程序

发微博

 

缺陷记录日志

学生:朱慧敏                                              日期:3/22

教员:王建民                                              程序号:3

 

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

3/22

1

 

编码

编译

3min

}

fatal error C1075: 与左侧的大括号“{”(位于“d:\bddownloads\vs2008\c程序\shuzu\shuzu\main.cpp(6)”)匹配之前遇到文件结束

posted @ 2015-03-22 19:45  so#what  Views(156)  Comments(1Edit  收藏  举报