描述:程式設計計算k個整型矩陣的累加,並輸出結果。若給定的矩陣不能相加,則直接終止程式並輸出」matrix can』t add!」。若計算機記憶體不足以計算給定矩陣的累加,則直接終止程式並輸出」not enough memory!」。
輸入:第1行輸入1個整數k,表示待累加矩陣的個數。
第2行輸入2個整數,表示第1個矩陣的行數m1和列數n1。
第3行到第m1+2行順次輸入m1*n1個整數,表示第1個矩陣的內容。
第m1+3行輸入2個整數,表示第2個矩陣的行數m2和列數n2。
第m1+4行到第m1+m2+3行順次輸入m2*n2個整數,表示第二個矩陣的內容。
依次類推輸入k個矩陣。
1、矩陣可用二維陣列實現,注意其大小可變,應考慮動態記憶體分配,同時注意記憶體釋放的問題,注意不能用c99變長陣列。
2、二維陣列的動態記憶體分配可採用兩種方式實現:(1)先分配m個空間儲存行位址,再為每一行分配n個空間儲存整型數,二維陣列第 i 行第 j 列元素對應為a[i][j],此時記憶體空間不一定連續。(2)採用大小為m*n的一維陣列模擬二維陣列,二維陣列第 i 行第 j 列元素對應為a[i*n+j],此時記憶體空間是連續的。
輸出:按行列順序輸出矩陣c中的所有資料。
輸入樣例:
2 <—待累加的矩陣個數
2 2 <—第1個矩陣的行數和列數
3 4
5 6
2 2 <—第2個矩陣的行數和列數
1 2
4 5
輸出樣例:
4 6
9 11
#include
#include
#include
int main()
p = (int **)malloc(a[i]*sizeof(int *));
}for(t = 0; t < a[i]; t++)
}for(k=0; kfor(j=0; jscanf("%d",&p[k][j]);
c[k][j]+=p[k][j];}}
}for(k=0; k0]; k++)
if(j==b[0])
printf("\n");
}for(s=0; s0]; s++)
free(p[s]);
free(p);
return
0;}
子矩陣最大累加和
問題描述如下 給定乙個矩陣matrix,其中的值有正 有負 有0,返回子矩陣的最大累加和。藍橋備戰資料 演算法很美 chapter4 多維陣列和矩陣 先想到了一維陣列的求子陣列最大累加和的題目,時間複雜度為o n 利用這種思維來處理這道題目。第一列第二列 第三列最大累加和 第一行 1 1 1 1第一...
子矩陣的最大累加和
題目 給定乙個矩陣matrix,其中的值有正 有負 有零,返回子矩陣的最大累加和。例如矩陣matrix為 90 48 78 64 40 64 81 7 66 其中,最大累加和的子矩陣為 48 78 40 64 7 66 所以返回子矩陣的最大累加和為209。解析 最簡單也最容易想到的方法是求出矩陣中的...
子矩陣的最大累加和
一 題目要求 給定乙個矩陣matrix,其中的值有正有負,有0,返回子矩陣的最大累加和,例如,矩陣matrix為 90 48 78 64 40 64 81 07 66 其中,最大累加和的子矩陣為 48 78 40 64 7 66 所以返回累加和209 二 解題思路 將矩陣matrix n n 的每一...