日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组练习2

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

?結(jié)對開發(fā):張哲 ?張曉菲

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

一、實(shí)驗(yàn)思路

? ?本次實(shí)驗(yàn)在第一次的基礎(chǔ)上增加了一些難度,數(shù)組可以首尾相連組成一個環(huán),我們兩個經(jīng)過思考和討論后得到一個方法:

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

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

二、程序代碼

1 //返回一個整數(shù)數(shù)組中最大子數(shù)組的和 2 //有正數(shù)、有負(fù)數(shù)、數(shù)組中連續(xù)的一個或多個整數(shù)組成一個子數(shù)組,每個子數(shù)組都有一個和、將數(shù)組首尾相連、返回最大子數(shù)組的位置 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 << "請輸入數(shù)組元素個數(shù):"; 14 cin >> num; 15 cout << "請輸入數(shù)組元素的值:"; 16 for (int i = 0; i<num; i++)//輸入環(huán)狀數(shù)組的元素值 17 { 18 cin >> arr[i]; 19 } 20 for (int i = num; i<(2 * num - 1); i++)//將環(huán)抻直,例如環(huán)狀數(shù)組值原先為[A,B,C,D],那么抻直之后為[A,B,C,D,A,B,C] 21 { 22 arr[i] = arr[i%num]; 23 } 24 cout << "環(huán)抻直之后的數(shù)組相當(dāng)于:" << 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為結(jié)束位置 start為起始位置 33 34 //求子數(shù)組最大和 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;//當(dāng)前最大子數(shù)組的起始位置 44 } 45 else 46 sum = sum + arr[i]; 47 if (sum>max) 48 { 49 max = sum; 50 start = cstart; 51 end = i;//最大子數(shù)組的終止位置 52 } 53 } 54 } 55 cout << "子數(shù)組和的最大值為:" << max << endl; 56 cout << "最大子數(shù)組的起始位置為環(huán)抻直后的第" << start + 1 << "個元素,結(jié)束位置為環(huán)抻直后的第" << end+1 << "個元素。" << endl; 57 return 0; 58 }

三、實(shí)驗(yàn)結(jié)果截圖

結(jié)果中給出了拆開后的數(shù)組,數(shù)組的位置從1開始,數(shù)組位置記錄的是拆開后的位置。

四、時間記錄日志

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

3月21號

星期一

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

3月22號

星期二

19:5020:40050編程一維數(shù)組1

3月23號

星期三

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

3月24號

星期四

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

3月25號

星期五

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

3月26號

星期六

9:0010:00080編程

一維數(shù)組2程序進(jìn)行

修改、寫博客

轉(zhuǎn)載于:https://www.cnblogs.com/zz0906/p/5322030.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。