热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

求二维矩阵和最大的子矩阵

结队小组成员:信1201-1班燕亚峰信1201-1班王童博一、题目与要求求二维矩阵中和最大的子矩阵。二、设计思路将二维数组转化为一维数组,在运用一维数组

结队小组成员:信1201-1班  燕亚峰 

                     信1201-1班  王童博 

一、题目与要求

      求二维矩阵中和最大的子矩阵。

 二、设计思路

      将二维数组转化为一维数组,在运用一维数组求最大子数组方法求出。c[0][]=a[0][];c[1][]=a[0][]+a[1][];依次往下。然后将二维数组存到txt文件中。

 三、源代码

#include
#include

void writeFile(int a[][20],int length,int row)//文件写入
{ofstream outFile;outFile.open("test.txt",ios::app);for(int i&#61;0;i){for(int j&#61;0;j){outFile<" ";}outFile<<endl;}outFile.close();
}
int max1(int a[],int N);
int column(int a[][20],int length,int num1) //求最大和
{int y&#61;0;int d[20];int e[100];int c[100][20];c[0][0]&#61;0;int p&#61;0;int b[100]&#61;{0};for(int j&#61;0;j){for(int t&#61;j;t){for(int i&#61;0;i){b[i]&#61;b[i]&#43;a[t][i];c[p][i]&#61;b[i];}p&#61;p&#43;1;}for(int o&#61;0;o<100;o&#43;&#43;){b[o]&#61;0;}}for(int l&#61;0;l){for(int u&#61;0;u){d[u]&#61;c[l][u];//cout<
}e[y&#43;&#43;]&#61;max1(d,length);//cout<
}int Max&#61;e[0];for(int i&#61;0;i){
if(e[i]>&#61;Max){Max&#61;e[i];}}return Max;
}
int max1(int a[],int N) //球一维最大和
{int b[20]; //正负交替数组int c[20]; //最终比较数组int i;int M; //存放数组b的长度int j&#61;0;int max; //存放最大值int p&#61;0;int sum; //相邻正数和int sum1; //相邻负数和sum&#61;0;sum1&#61;0;int u&#61;0;//判断数组是否全负for(i&#61;0;i){
if(a[i]>&#61;0){u&#61;1;}}if(u&#61;&#61;1){//求出相邻正数或相邻负数的和&#xff0c;形成正负交替数组for(i&#61;0;i){if(a[i]>&#61;0){if(i1){if(a[i&#43;1]>&#61;0){sum&#61;sum&#43;a[i];}else{b[j&#43;&#43;]&#61;sum&#43;a[i];sum&#61;0;}}else{if(a[i-1]>&#61;0){b[j&#43;&#43;]&#61;sum&#43;a[N-1];}else{b[j&#43;&#43;]&#61;a[N-1];}}}else if(a[i]<0){if(i1){if(a[i&#43;1]<0){sum1&#61;sum1&#43;a[i];}else{b[j&#43;&#43;]&#61;sum1&#43;a[i];sum1&#61;0;}}else{if(a[i-1]<0){b[j&#43;&#43;]&#61;sum1&#43;a[N-1];}else{b[j&#43;&#43;]&#61;a[N-1];}}}}M&#61;j;if(b[0]<0){j&#61;1;}else{j&#61;0;}//对数组B进行操作&#xff0c;将利用算法求的机最大值存入数组c中for(int y&#61;j;y2){if(y&#43;2<M){if(b[y]&#43;b[y&#43;1]>&#61;0){c[p&#43;&#43;]&#61;b[y];b[y&#43;2]&#61;b[y&#43;2]&#43;b[y&#43;1]&#43;b[y];if((y&#43;2&#61;&#61;M-1)||(y&#43;2&#61;&#61;M-2)){c[p&#43;&#43;]&#61;b[y&#43;2];break;}}else{c[p&#43;&#43;]&#61;b[y];}}else{c[p&#43;&#43;]&#61;b[y];}}//对数组c求最大值max&#61;c[0];for(i&#61;0;i){if(c[i]>&#61;max){max&#61;c[i];}}return max;}else{max&#61;a[0];for(i&#61;0;i){if(a[i]>&#61;max){max&#61;a[i];}}return max;}
}
int main()
{ofstream outFile;outFile.open(
"test.txt",ios::app);int a[20][20];int length,index;cout<<"输入行数列数:";cin>>index>>length;outFile<<"行数:"<endl;outFile<<"列数:"<endl;outFile.close();int y&#61;0;for(int i&#61;0;i){for(int j&#61;0;j){cin>>a[i][j];}}writeFile(a,length,index);int s&#61;column(a,length,index);cout<<"最大和为:"<endl;return 0;
}

四、截图

五、实验总结

 一开始的时候我们两个想得不一样&#xff0c;我们分别讲了自己的思路&#xff0c;通过我们充分沟通&#xff0c;分配好了各自的任务。这次实验在文件的时候&#xff0c;我们找了很多资料&#xff0c;通过查阅资料解决了问题。我们想象不到二维数组怎么使用&#xff0c;我提出我们把所有的都列举出来&#xff0c;就想到了想到一维数组。一个人的思维总是有局限性的&#xff0c;只有通过沟通&#xff0c;思想才会更加完美。

六、合照

 

转:https://www.cnblogs.com/yanyafeng/p/4357265.html



推荐阅读
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • hlg_oj_1116_选美大赛这题是最长子序列,然后再求出路径就可以了。开始写的比较乱,用数组什么的,后来用了指针就好办了。现在把代码贴 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 新浪微博热搜暂停更新;即刻APP回归;Android 11 Beta版发布 | 科技新闻速递
    为您带来最新的科技资讯,涵盖社交媒体动态、软件更新及行业重大事件。CSDN携手您共同关注科技前沿。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
author-avatar
aa杨钦佳_170
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有