返回一个二维整数数组中的最大的子数组和

一。题目:

                  1、输入一个二维整形数组,数组里有正数有负数。

                  2、二维数组中连续的一个子矩阵组成一个子数组。

                  3、求所有子数组的和的最大值。

二.设计思想:

 .定义一个二维数组,使用二重循环对其进行赋值,对其进行遍历,定义一个变量tmd,将每行的最大值赋值给他,并对这个最大值进行累加,输出这个最大值的和。

三.

源代码:

#include<stdio.h>
#include<string.h>
#define M 3
#define N 3
void main()
{
int a[M][N];
int sum=0;
int tmd=0;
for (int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
for (int i=0;i<M;i++)
{
tmd=0;
for (int j=0;j<N;j++)
{
if(a[i][tmd]<a[i][j])
tmd=j;
printf("The max num of Line %d is %d\n",i+1, a[i][tmd]);
sum+= a[i][tmd];
}
}
printf("The sum is %d\n",sum);
}

三,结果:

四,总结

通过本次实验我们对二维数组有了更深刻的认识,成功完成了二维数组的最大子数组,同时我们结对开发,开发之前进行了分配任务,之后两个人积极的进行开发,最后在齐心合力的努力下,顺利完成任务。

五,照片展示

猜你喜欢

转载自www.cnblogs.com/lyf18974296791/p/9825485.html
今日推荐