#include <iostream.h>
int main()
{
int a[
3][
3];
//存放输入的数组
int max,s,count;
int b[
3][
5];
//存放子数组
cout<<
"输入数组(3*3)中的元素:"<<
endl;
for(
int i=
0;i<
3;i++
)
{
for(
int j=
0;j<
3;j++
)
{
cin>>
a[i][j];
}
}
for(i=
0;i<
3;i++
)
{
count=
0;
for(
int j=
0;j<
3;j++
)
{
s=
0;
for(
int l=
0;l<
3-j;l++
)
{
s=s+a[i][j+
l];
b[i][count+l]=
s;
}
count=count+
3-
j;
}
}
//求最大值
max=b[
0][
0];
for(
int j=
0;j<
5;j++
)
{
for(i=
0;i<
3;i++
)
{
s=
0;
for(
int r=
0;r<
3-i;r++
)
{
s=s+b[r+
i][j];
if(max<
s)
{
max=
s;
}
}
}
}
cout<<
"最大子数组为:"<<max<<
endl;
cout<<
endl;
return 0;
合作小组: 吴强 李子木预计时间: 三小时实际时间:周五晚上19:00-20:00 周六10:00-11:20 周日16:00-16:45 为了便于编程,用一个3*3的数组来计算。然后将子数组的和存在3*5的一个新的二维数组里等待比较。然后比较每一个数的大小就可以计算出3*3的子数组的和了。
运行结果运行了两次,我检验过后认为结果正确。
冲突:刚开始很难想到把子数组的和放到新数组里,那么就无法比较大小。
转载于:https://www.cnblogs.com/lzm-000/p/9825925.html