日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

数组练习2

發布時間:2023/12/2 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组练习2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?結對開發:張哲 ?張曉菲

題目:返回一個數組中子數組最大和,數組可以首尾相連。

一、實驗思路

? ?本次實驗在第一次的基礎上增加了一些難度,數組可以首尾相連組成一個環,我們兩個經過思考和討論后得到一個方法:

1、在對環的特殊性研究后,我們可以將一個環拆成一個鏈,即:5 -1 3 3 拆成5 -1 3 3 5 -1 3 這個環每次從開始位置四個四個組隊,即5 -1 3 3 、-1 3 3 5、3 3 5 -1、3 5 -1 3 ,然后利用for循環,計算其最大子數組和,這樣即可以達到一個環所呈現的結果。

2、對于記錄位置這個問題,我們定義了cstart start end三個變量來表示,cstart記錄每次循環最大子數組和的位置,start記錄最終最大子數組和的位置,end則記錄最大子數組和終點的位置。

二、程序代碼

1 //返回一個整數數組中最大子數組的和 2 //有正數、有負數、數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和、將數組首尾相連、返回最大子數組的位置 3 //張哲、張曉菲 2016/3/22 4 5 #include<iostream> 6 using namespace std; 7 8 #define N 10000 9 int main() 10 { 11 int num, arr[N]; 12 int sum = 0; 13 cout << "請輸入數組元素個數:"; 14 cin >> num; 15 cout << "請輸入數組元素的值:"; 16 for (int i = 0; i<num; i++)//輸入環狀數組的元素值 17 { 18 cin >> arr[i]; 19 } 20 for (int i = num; i<(2 * num - 1); i++)//將環抻直,例如環狀數組值原先為[A,B,C,D],那么抻直之后為[A,B,C,D,A,B,C] 21 { 22 arr[i] = arr[i%num]; 23 } 24 cout << "環抻直之后的數組相當于:" << endl; 25 for (int i = 0; i<(2 * num - 1); i++) 26 { 27 cout << arr[i] << " "; 28 } 29 cout << endl; 30 31 int max = arr[0]; 32 int end, start, cstart;//end為結束位置 start為起始位置 33 34 //求子數組最大和 35 for (int j = 0; j<num; j++) 36 { 37 sum = 0; 38 for (int i = j; i<j + num; i++) 39 { 40 if (sum <= 0) 41 { 42 sum = arr[i]; 43 cstart = i;//當前最大子數組的起始位置 44 } 45 else 46 sum = sum + arr[i]; 47 if (sum>max) 48 { 49 max = sum; 50 start = cstart; 51 end = i;//最大子數組的終止位置 52 } 53 } 54 } 55 cout << "子數組和的最大值為:" << max << endl; 56 cout << "最大子數組的起始位置為環抻直后的第" << start + 1 << "個元素,結束位置為環抻直后的第" << end+1 << "個元素。" << endl; 57 return 0; 58 }

三、實驗結果截圖

結果中給出了拆開后的數組,數組的位置從1開始,數組位置記錄的是拆開后的位置。

四、時間記錄日志

日期開始時間結束時間中斷時間(min)凈時間(min)活動備注

3月21號

星期一

14:0015:5010(課間)100聽課軟件工程
?20:00?22:000??120編程一維數組1

3月22號

星期二

19:5020:40050編程一維數組1

3月23號

星期三

15:0014:0010(休息)50看書構建之法
?20:0021:150(休息)75編程一維數組1

3月24號

星期四

14:0015:5010(課間)100聽課軟件工程
?20:3022:0010(休息)80編程一維數組2

3月25號

星期五

16:3017:000(休息)70編程一維數組2
?21:0022:00060編程一維數組2

3月26號

星期六

9:0010:00080編程

一維數組2程序進行

修改、寫博客

轉載于:https://www.cnblogs.com/zz0906/p/5322030.html

總結

以上是生活随笔為你收集整理的数组练习2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。