计算与软件工程作业三

计算与软件工程作业三

作业要求 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454
课程目标 积累编程的知识,增强简单开发的能力
实现目标的方面 代码理解与运行
本次作业 https://www.cnblogs.com/cdinzz/p/12459432.html

作业1 单元测试

数组中最大子数组的和

用类/函数来实现
需求:希望返回 3 种信息
最大子数组的和
最大子数组开始的下标
最大子数组结束的下标

代码如下:

#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 = 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;
}

作业2 博客作业

信息与计算科学这个专业对数学知识和计算机能力都有所要求,在大学的前两年,我学习了高等代数、数学分析等数学知识,也学习了c++、java、matlab的相关知识与运用,但仅仅简单了解未花时间用心研究钻研,也十分欠缺充分的了解与创造应用。对此,后续大学一年的目标是更深入的了解数学知识技能,并同样充实计算机技能,重视专业相关的各项学习。

码云:https://gitee.com/cd_in_zz/learngit/blob/master/test2.cpp

原文地址:https://www.cnblogs.com/cdinzz/p/12459432.html