作業要求 | (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++,我學的並不是很好,加上自己對其不是很感興趣,所以也沒有那么的認真去學,但是往后接觸了更多的計算機語言讓我明白這是一門很重要的學科,對未來從業非常重要,因此我往后會更加認真的學習,增強自己的能力,多學多做。