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:ddownloadsvs2008c程序shuzushuzumain.cpp(6)”)匹配之前遇到文件结束 |