• 计算与软件工程作业三


    作业要求 (https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454)
    我在这个课程的目标是 帮助自己提高自己的计算机技能
    此作业在哪个具体方面帮我实现目标 通过写代码
    其参考文献 (https://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html)

    作业正文

    单元测试

    数组中最大子数组的和。

    用类/函数来实现
    需求:希望返回 3 种信息
    最大子数组的和
    最大子数组开始的下标
    最大子数组结束的下标
    从文本文件中读输入的数据,熟悉文件操作, 文件有两种数据
    第一个数字:这次测试中有多少个数据, 数字后面是冒号。
    后续数字: 每个数据的值,用逗号隔开
    比如
    文件内容:
    17: -32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61
    输出
    sum = 71

    运行截图

    代码

    #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 array[]={-3,-10,33,-23,32,-12,4,-12,1,3,5,-8,70,-21,1,-9,61};
        int length=17;
        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++,我学的并不是很好,加上自己对其不是很感兴趣,所以也没有那么的认真去学,但是往后接触了更多的计算机语言让我明白这是一门很重要的学科,对未来从业非常重要,因此我往后会更加认真的学习,增强自己的能力,多学多做。

  • 相关阅读:
    高性能IO模型浅析
    使用vbs脚本进行批量编码转换
    Linux模块机制浅析
    源文件移动后gdb不显示代码的原因
    Linux的原子操作与同步机制
    ARM的常数表达式
    安装卡巴 OFFICE链接 出现这个过程被中断,由于本机的限制
    selenium “could not be scrolled into view”
    bs4 FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
    vim实现实时自动保存
  • 原文地址:https://www.cnblogs.com/zwx1998-1221/p/12458781.html
Copyright © 2020-2023  润新知