一.實驗目的
1,以指定格式的文字檔案形式輸入陣列。
2,陣列由一維變為二維。
3,熟練使用git常用命令將作業簽入**版本控制平台。
4,給出單元測試/**覆蓋率的最終覆蓋率的報告。
二.實驗過程
實驗主要分為兩大部分,第一,解決演算法問題,編寫程式**。第二,複審**和完成**測試計畫。
1.編寫**
1)以文字檔案的形式輸入陣列
首先,在d盤建乙個txt文字檔案,裡面存放了目標二維陣列,
然後,將文字檔案內容讀取出來,存到二維陣列中,
再顯示處理後的二維陣列,
最後關閉檔案。
實現**如下:
#include
#include
#include
#include
using namespace std;
//txt文字必須是row行,col列儲存的文字資料
#define readdatapath "d:\\1.txt"//txt文字的路徑
執行結果如下:
2)求二維陣列的最大子陣列
原理:每列資料中第i行到第j行進行相加,這樣得到乙個列矩陣,a[1......n],這樣就轉化成乙個一維整數陣列中最大子陣列的和,
通過求得迴圈不同第i行到第j行之間的值之和,最後找到最大值。
實現**如下:
int sum[100]=,max=0,result=a[0][0],m=0;
for(i=0;isum[j])
else
if(max>result)
}m++;//子陣列的行數+1
}m=0;
for(j=0;j執行結果如圖:
2.單元測試
1)先配置測試環境
過程如圖:
2)測試
1.txt的內容:
1 2
4 6期望結果:13
執行結果:
1.txt的內容:
2 -3 -5
8 6 -7
9 0 -8
期望結果:23
執行結果:
1.txt的內容:
-1 -2 -3
-4 -5 -6
-7 -8 -9
期望結果:-1
執行結果:
三.實驗總結
本次實驗收穫頗多。
第一,通過查資料,了解並掌握了如何以指定格式的文字檔案形式輸入陣列。
第二,明白了求二維陣列的最大子陣列的和的演算法,及**實現。
第三,學會了在vs2010上為單元測試安裝環境,並進行單元測試。
第四,提公升了變成能力和解決問題的能力。
二維陣列求最大子陣列
程式要使用的陣列放在乙個叫 input.txt 的檔案中,檔案格式是 陣列的行數,陣列的列數,每一行的元素,用逗號分開 每乙個數字都是有符號32位整數,當然,行數和列數都是正整數。演算法思想 對於一維的陣列,我們可以很容易用動態規劃的方法求得最大子陣列 所以我們將i 0.n j i.n 列舉所有行的...
求二維陣列中最大子陣列的和
題目 給出乙個 m n 的二維矩陣 元素可為正可為負 求該二維矩陣的乙個子矩陣,且此子矩陣中所有元素的和最大,並輸出該矩陣的和。分析 因為輸出的是矩陣,把每列資料中第i行到第j行進行相加,這樣得到乙個列矩陣,a 1.n 這樣就轉化成乙個一維整數陣列中最大子陣列的和,通過求得迴圈不同第i行到第j行之間...
二維陣列最大子陣列和
陣列輸出 int sum a 0 0 b,c n int imin 0,imax 0,jmin 0,jmax 0 for i 0 i c i a 0 i for i 1 i 4 i else b c j if sum b if i1 else for i imin i imax i cout cou...