軟體工程個人作業4(課堂練習 課堂作業)

2022-07-25 03:03:06 字數 1022 閱讀 1071

題目:返回乙個整數陣列中最大子陣列的和。

要求:1、輸入乙個整型陣列,陣列裡有正書和負數。

2、陣列中連續的乙個或者多個整數組,每個子陣列都有乙個和。

3、求所有子陣列的和的最大值。要求時間複雜度為0(n)。

設計思想:

1、定義一維陣列,為實現可以輸入任意多個值在此處用到vectors容器。

2、輸入

3、實現方法:從兩頭進行。以陣列的前端為例,比較下標為0與下標為1的兩個元素進行比較選擇,若下標為0的元素的數值小於0則直接捨棄,若大於零則將該元素的值與下標為1的元素相加並賦值給下標為1的元素,在進行迴圈。

程式**:

#include#include

#include

using

namespace

std;

intmain()

iz=ivec1.size();

cout

<< "

數字元素的個數:

"<< iz <

for(int i = 0;i < iz/2;i++)

if(ivec1[i] > 0

)

ivec1[i+1] =t;

}for(int i = iz-1;i > iz/2+1;i--)

if(ivec1[i] > 0

)

ivec1[i-1] =t;

}if(ivec1[iz/2]>=0

)

else

max = ivec1[iz/2+1

]; cout

<< "最大"

<

return0;

}

執行結果截圖:

反思總結:這個程式僅僅是考慮了最大值時正數的情況;

遇到的問題:

1、隨意輸入任意個整型數字(用vectors容器)

2、定義變數max比較儲存最大值(開始被忽略了)

3、篩選時要從兩頭進行。

4、有些情況不能正常執行。

6 1 課堂練習

1.求正整數2和100之間的完全數。完全數 因子之和等於它本身的自然數,如6 1 2 3 include using namespace std intjudge int x int main intjudge int x 2.程式設計求2 n n為大於2的正整數 中有多少個素數。include i...

6 2 課堂練習

1 用遞迴的方法求1 2 3 n的值。include using namespace std intcalculate int n int main intcalculate int n 2 用遞迴函式輸出斐波那契數列第n項。0,1,1,2,3,5,8,13 include using namesp...

2020 6 6課堂練習反思

照著案例敲 其實修改一些地方就ok了 但思路固定了 仿照前面的 先是跟前面一樣直接設定物件屬性賦值 如 retangle.setr 3 但是後面老師的新案例是需要在鍵盤輸入值 修改過後用了 scanner sc new scanner system.in system.out.print c c s...