输出二维环形数组中最大子数组和

组员 石鹤李海超

一、题目

二、设计思想

把解决一维环形数组,和普通二维数组的方法结合起来街是解决二维环形数组的方法。

三、源代码

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
int qiumax(int arry[],int max)
{
    int i;
    long sum;
    for(i=0;i<5;i++)
    {
        for(i=0;i<5;i++)
        {
            arry[i+5]=arry[i];
        }
    }
    for(int j=0;j<5;j++)
    {
        sum=0;
        for(int k=j;k<5+j;k++)
        {
            sum=sum+arry[k];
            if(sum>max)
            {
                max=sum;
            }
        }
    }
    return max;
}
int main()
{
    int qiumax(int arry[10],int max);
    int i,j,k;
    int arry[5][10]={{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1}};
    int arry1[10]={0,0,0,0,0,0,0,0,0,0};
    int max=arry[0][0];
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            arry[i][j+5]=arry[i][j];
        }
    }
    for(i=0;i<5;i++)
    {
        for(j=i;j<5;j++)
        {
            for( k=0;k<5;k++)
            {
                arry1[k]+=arry[j][k];
            }
            max=qiumax(arry1,max);
        }
        for(k=0;k<10;k++)
        {
            arry1[k]=0;
        }
    }
    cout<<"MAX IS"<<" "<<max<<endl;
    return 0;
}

四、结果截图

五、实验心得

本次实验并不很难,只需把前两次的想法结合起来,修改下前两次的程序即可。

但在调用函数传参是我俩遇到了麻烦,改正后对传参有了更深的认识。

时间: 2024-10-03 05:52:40

输出二维环形数组中最大子数组和的相关文章

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

题目:返回一个二维整数组中最大子数组的和 实验思路 根据老师上课给出的3*6的数据 我们决定设计一个3*6行的二维数组进行计算,依次进行比较 将最大子数组的和返回 代码 1 #include <iostream.h> 2 int main() 3 { 4 int a[3][6];//定义一个3*6的二维数组 5 int max; 6 int s;//求和 7 int count; 8 int b[3][7]; 9 cout<<"请输入二维数组(3*6)中的元素:"

输出一维环形数组中最大子数组和最大子数组的位置

组员 石鹤李海超 一.题目 输出一维环形数组中最大子数组的和 和最大子数组的位置 二.设计思想 把原数组扩大一倍,再把原数组放到后边,只需改变上次试验是循环变量即可求出最大子数组的和. 三.源代码 #include<iostream.h> #include<time.h> #include<stdlib.h> int main() { int arry[20]; int start,end,i; long sum,max; cout<<"Pleas

求数组中最大子数组的和(二维环)

成员:林彦汝.张金 (这次角色调换,我主要负责代码复审,代码测试计划:张金负责程序分析,代码编程.) 题目: 返回一个二维整数数组中最大子数组的和 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 思路: 在求一维环形数组和二维数组最大子数组的和的基础上,我们将两个的方法综合起来求解关于二维环形数组.假设原二维数组a[3][3]为 1 -2 3 1 -3

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

一.题目要求 题目:返回一个二维整数数组中最大子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大 两人结对完成编程任务.一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照).(截止到周四4月21日24:00) 二.设计思路 本次实验设计思路非常简单,就

二维整数数组中最大子数组的和

题目:返回一个二维整数数组中最大子数组的和 要求: n输入一个二维整形数组,数组里有正数也有负数. n二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. n求所有子数组的和的最大值.要求时间复杂度为O(n). 组员:陈晨( 负责程序分析,代码编程),王颖瑞( 负责代码复审和代码测试计划) 思路:二维数组求最大子数组是从一维数组扩展而来,首先确定了最大上界的情况下在第一行开始确定最大子数组范围,对于规定好的最大子数组的范围,把最大子数组按照一列有几个数,分成几种不同的行,对于以上产生

返回一个首尾相接的二维整数数组中最大子数组的和

一.题目:返回一个二维整数数组中最大子数组的和. 二.要求: (1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组首尾相接,象个一条首尾相接带子一样. (3)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (4)求所有子数组的和的最大值. 三.解题思路: 将两个同样的数组首尾相接合并成一个数组,在用以前求二维数组最大子数组的方法求解 四.源代码: #include<iostream> using namespace std; #include"math

二维数组中最大子数组的和

题目:返回一个二维整数数组中最大子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 思路: 借鉴网上代码整理得思路: 根据一位数组最大子数组求和的编程思路,讲二维数组转化成一维数组求解: 即求出每一行的最大子数组之和,通过比较各行最大子数组之和的大小,求出只有二维数组只有一行的情况下的最大子数组之和: 然后求每两行最大子数组之和,即将每两行的相同列相加,将二维数

求二维数组中最大子数组的和

一.题目: 返回一个二维整数数组中最大子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 二:结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 三:设计思路: 将二维数组的每行轮番逐次相加(包括单行)后看成一维数组,利用求

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

题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.      二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和.      求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求:两人结对完成编程任务.              一人主要负责程序分析,代码编程.              一人负责代码复审和代码测试计划.              发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照)

返回一个二维整数数组中最大子数组的和(头尾相接)

1.题目. 题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 2.设计思想. 分别求出每一行的最大子矩阵,然后再两行相加,求出最大子矩阵,一直到所有的行相加,求出最大子矩阵.比较其中最大的子矩阵值,找出最大的. 3.代码. #include<iostream> using namespace