当前位置: 首页 > news >正文

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

一、设计思路:

1.先定义一个2*2数组并输入。

2.再求每行中子数组的和,得到一个2*3数组。

3.求每列中子数组的和,最后得到一个3*3数组。

4.求每一列的最大值,得到3个数。

5.3个数比较得到一个最大值即最大子数组的和。

二、代码:

#include<stdio.h>
int main()
{
  int a[2][2];//定义一个2*2的二维数组
  int max;
  int s;
  int count;
  int b[2][3];
  int i,j;
  printf("请输入二维数组:\n");
  for( i=0;i<2;i++)
  {
    for( j=0;j<2;j++)
    {
    scanf("%d",&a[i][j]);
    }

  }
  for( i=0;i<2;i++)
    for( j=0;j<2;j++)
      printf("%d",&a[i][j]);

  for(i=0;i<2;i++)
  {
    count=0;
    for(int j=0;j<2;j++)
    {
     s=0;
     for(int l=0;l<2-j;l++)
     {
      s=s+a[i][j+l];
      b[i][count+l]=s;

     }
        count=count+2-j;
    }
  }
  //求最大子数组的和:
  int c[3][3];
  for(j=0;j<3;j++)
  {
    count=0;
    for(int i=0;i<2;i++)
    {
      s=0;
      for(int l=0;l<2-i;l++)
      {
        s=s+b[i+l][j];
        c[count+l][j]=s;

      }
      count=count+2-i;
    }
  }
  int d,e,f;

  if( c[0][0]>c[1][0]) d = c[0][0];
  else d = c[1][0];
  if( c[2][0]>d) d = c[2][0];

  if( c[0][1]>c[1][1]) e = c[0][1];
  else e = c[1][1];
  if( c[2][1]>d) e = c[2][1];

  if( c[0][2]>c[1][2]) f = c[0][2];
  else f = c[1][2];
  if( c[2][2]>d) f = c[2][2];


  if( d>e) max = d;
  else max = e;
  if( f>max) max = f;
  printf("\n最大子数组和为:");

  printf("%d\n",max);

  return 0;
}

三、运行结果:

四、psp0

 

 

五、心得体会

    上课认真听讲,下课要多看书。

 

转载于:https://www.cnblogs.com/gaoemm/p/9824903.html

相关文章:

  • 1、jeecg 笔记开篇
  • 论文笔记:Visual Semantic Navigation Using Scene Priors
  • InlineHookPsTerminateProcess(0环)
  • 人工智能会改变世界?那这项技能你必须要掌握了。
  • 如何洞悉城市人群移动规律?DataV海量轨迹可视化实践解析
  • webpack4 正确的配置方式
  • 5s管理推进的三个阶段及三大实施原则
  • 小程序生命周期流程
  • 前端缓存-IndexedDB
  • 生产LVS负载均衡与keepalive的高可用实践
  • SQL数据库字段数据类型详细说明
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • Mysql密码重置
  • hadoop之旅6-windows本地MapReducer离线单词统计
  • 获取全局上下文(getApplicationContext)_创建Shared Preference工具类_实现自动登录
  • JavaScript-如何实现克隆(clone)函数
  • (三)从jvm层面了解线程的启动和停止
  • 345-反转字符串中的元音字母
  • 4个实用的微服务测试策略
  • create-react-app做的留言板
  • es6(二):字符串的扩展
  • iOS编译提示和导航提示
  • JavaScript异步流程控制的前世今生
  • js数组之filter
  • python docx文档转html页面
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 检测对象或数组
  • 正则与JS中的正则
  • AI算硅基生命吗,为什么?
  • Mac 上flink的安装与启动
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​香农与信息论三大定律
  • ​学习一下,什么是预包装食品?​
  • # 数据结构
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (2015)JS ES6 必知的十个 特性
  • (3)llvm ir转换过程
  • (LeetCode 49)Anagrams
  • (Ruby)Ubuntu12.04安装Rails环境
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十八)SpringBoot之发送QQ邮件
  • (一)u-boot-nand.bin的下载
  • (转)socket Aio demo
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .java 9 找不到符号_java找不到符号
  • .Net各种迷惑命名解释
  • .NET开发人员必知的八个网站
  • .NET委托:一个关于C#的睡前故事
  • .NET下的多线程编程—1-线程机制概述