软件工程课堂作业(八)——结对开发(三)
一、題目及要求:
? ? ? 題目:返回一個整數(shù)數(shù)組中最大子數(shù)組的和。
? ? ? 要求(新加):①要求程序必須能處理1000個元素;②每個元素都是int32類型的。
? ? ? 結(jié)對人員:焦燕 ? 胡亞寶
二、設(shè)計思路:
? ? ??①處理1000個元素的問題,我們將數(shù)組的長度設(shè)為1000,其中的每一個元素都是隨機生成,因為這道題目重點是溢出問題,所以我們將它們設(shè)的值都比較大;
? ? ? ②現(xiàn)階段我們將它們都設(shè)為int型,超過表示范圍時,系統(tǒng)會自動轉(zhuǎn)化成負值,判斷后將顯示溢出。
三、源代碼:
1 // 結(jié)對開發(fā)——焦燕 胡亞寶 2 3 #include "stdafx.h" 4 #include "stdlib.h" 5 6 int _tmain(int argc, _TCHAR* argv[]) 7 { 8 int i,j,a[1000]; 9 int Sum,Max; 10 printf("隨機生成的數(shù)組為:\n"); 11 for(j=0;j<1000;j++) 12 { 13 a[j]=rand()+100000000; 14 printf("%d\t",a[j]); 15 } 16 17 Max = a[0]; 18 19 for(i=0;i<1000;i++) 20 { 21 Sum = 0; 22 for(j=i;j<1000;j++) 23 { 24 Sum =Sum+ a[j]; 25 if(Sum<=0) 26 { 27 //printf("溢出!"); 28 Sum=0; 29 } 30 if(Sum > Max) 31 { 32 Max =Sum; 33 } 34 } 35 } 36 37 return 0; 38 }四、測試及運行結(jié)果:
五、心得體會:
? ? ? 這個題目是考察我們大數(shù)溢出的問題,之前我們寫的程序幾乎都沒有考慮這些問題,這次也是提醒我們,在以后的編程中,大數(shù)溢出是不可忽視的問題。
? ? ? 在思考思路的時候,我們首先設(shè)定了非常大的數(shù),觀察如果數(shù)據(jù)太大而超出定義變量能表示的范圍將會怎樣,我們發(fā)現(xiàn),如果加的和值太大,系統(tǒng)將自動轉(zhuǎn)化成一個非常大的負值,于是我們想到了隨機生成的數(shù)組元素都設(shè)為正的大數(shù),再一個個累加,如果和值出現(xiàn)負數(shù),那么肯定是溢出問題,這樣把結(jié)果顯示出來。
? ? ? 這次的合作我們兩個一開始都沒有頭緒,和別的同學(xué)討論過后才開始進行編寫。這個小程序還是有不完善之處,比如解決這種溢出問題我們還是有點困難,在討論過后希望能解決它。
?
附:合照
轉(zhuǎn)載于:https://www.cnblogs.com/huyabaoboke/p/4373880.html
總結(jié)
以上是生活随笔為你收集整理的软件工程课堂作业(八)——结对开发(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP开发之环境配置
- 下一篇: 【C语言笔记初级篇】第八章:简单调试