软件工程第二次作业

我选择的作业题目是第一个。


题目要求:最大连续子数组和(最大子段和)
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n

例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。
解题思路:
我的解决方案首先采用了函数式编程的方法。我直接赋值一个变量以记录我将要输入的元素数量,接着创建了一个数组存储这些元素。随后,我着手编写函数,初始化了两个变量来分别存储最大值和当前累加值,它们初始都被赋值为0。在循环中累加当前值,若发现当前值超过了最大值,则将其更新。若当前值小于0,则将当前值重置为0。最终,我使用 return 语句返回最终的结果。详细的代码可以在我的 GitHub 页面上找到,地址为:https://github.com/huanghbj/softproject2
代码流程图:

代码效果:

代码测试:

项目记录:

项目小结:
在完成软件工程课程的第二次作业中,我深入学习了高质量编程的思维方式和方法论。通过对代码编写过程的反思和总结,我不仅巩固了高质量编程理念的应用,而且对其背后的原则有了更深刻的认识。这次的学习经历不仅提升了我的编程技能,而且为我未来的学术和职业道路注入了强大的动力。我意识到,持续追求代码质量的提升不仅能够带来更加健壮和可靠的软件产品,也是个人技术成长的重要驱动力。我期待将这些宝贵的知识应用到实践中,通过不断实践和学习,成为一名真正的编程专家。

posted @   hbj-8080  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)
点击右上角即可分享
微信分享提示