计算机与软件工程作业三
计算机与软件工程作业三
作业要求 | https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454 |
---|---|
我在这个课程的目标是 | 提高自身能力并获得启发 |
此作业在哪个具体方面帮我实现目标 | 学会新的软件功能 |
其他参考文献 | https://blog.csdn.net/BillCYJ/article/details/79761039 |
作业正文
代码
#include<iostream>
#include<cstdlib>
using namespace std;
int getmax(int array[],int length)
{
int sum = 0;
int max = 0;
int startIndex = 0; //记录子数组的起始位置
int endIndex = 0; //记录子数组的终止位置
int newStartIndex = 0;
for (int i = 0; i < length; i++) //遍历整个目标数组
{
if (max < 0)
{
max = array[i];
newStartIndex = i;
}
else
{
max += array[i];
}
if (sum < max) //如果此时 sum < temp;
{
sum = max;
startIndex = newStartIndex;
endIndex = i;
}
}
return max;
}
int getstartIndex(int array[],int length)
{
int sum = 0;
int max = 0;
int startIndex = 0;
int endIndex = 0;
int newStartIndex = 0;
for (int i = 0; i < length; i++)
{
if (max < 0)
{
max = array[i];
newStartIndex = i;
}
else
{
max += array[i];
}
if (sum < max)
{
sum = max;
startIndex = newStartIndex;
endIndex = i;
}
}
return startIndex;
}
int getendIndex(int array[],int length)
{
int sum = 0;
int max = 0;
int startIndex = 0;
int endIndex = 0;
int newStartIndex = 0;
for (int i = 0; i < length; i++)
{
if (max < 0)
{
max = array[i];
newStartIndex = i;
}
else
{
max += array[i];
}
if (sum < max)
{
sum = max;
startIndex = newStartIndex;
endIndex = i;
}
}
return endIndex;
}
int main()
{
int length,i=0;
cout<<"请输入个数:";
cin>>length;
cout<<"请输入数组:";
int array[1000]={0};
for(i=0;i<length;i++)
{
cin>>array[i];
}
cout<<"最大子数组的和为:"<<getmax(array,length)<<endl;
cout<<"最大子数组起始下标:"<<getstartIndex(array,length)<<endl;
cout<<"最大子数组结束下标:"<<getendIndex(array,length)<<endl;
system("pause");
return 0;
}
运行结果
博客作业
回顾总结你在信息与计算科学专业前两年的学习经历和项目技能等,写一篇关于你自己的简历,介绍你的技能,并针对未来准备从事的职业,评价你目前的技术、能力是否胜任,(个人能力的评价可以参考软件工程师个人能力评价表https://www.cnblogs.com/xinz/p/3852177.html),并针对未来的职业发展方向,指明还有哪些技术、技能需要在后续大学一年的时间里需要加强的。
在大学前几年学习了c++,java,matlab,数据库,操作系统,asp网页设计等,但一只没能深入的学习下去,只能解决一些比较基础的问题。我个人认为我应该在以后的学习中多加努力,好好练就一门属于自己的技能。