zoukankan      html  css  js  c++  java
  • 二维数组

    一、设计思想

    1.我们先建立一个新的二维数组b[n][m]

      二维数组b[j][k] 存放的是a[j][k](0<=j<n,0<=k<m) 这一点到 a[0][0]  的最大值

    2、

    具体循环工作:

           当循环到a[j][k](0<=j<n,0<=k<m)

            则求的是 a[j][k]到 a[0][0]  的最大值

    计算方法:

               b[j][k]=a[j][k]+b[j-1][k]+b[j][k-1]-b[j-1][k-1]

               若b[j][k]<0,则赋值为0;

               每次计算完成后,都需要与max进行比较

      1 #include<iostream>
      2 using namespace std;
      3 int main()
      4 {
      5     int i,j;
      6     int a[3][3]={-1,-2,1,-3,4,2,3,20,-5};
      7     int b[3][3];
      8     int max=a[0][0];
      9     for(i=0;i<3;i++)
     10     {
     11         for(j=0;j<3;j++)
     12         {
     13             cout<<a[i][j]<<'	';
     14         }
     15         cout<<endl;
     16     }
     17     for(i=0;i<1;i++)
     18     {
     19         b[0][0]=a[0][0];
     20         for(j=0;j<3;j++)
     21         {
     22             if(a[0][j-1]<0)
     23             {
     24                 b[0][j]=a[0][j];
     25             }
     26             else
     27             {
     28                 b[0][j]=b[0][j-1]+a[0][j];
     29             }
     30         }
     31     }
     32     for(i=1;i<3;i++)
     33     {
     34         for(j=0;j<1;j++)
     35         {
     36             if(a[i-1][0]<0)
     37             {
     38                 b[i][0]=a[i][0];
     39             }
     40             else
     41             {
     42                 b[i][0]=b[i-1][0]+a[i][0];
     43             }
     44         }
     45     }
     46     for(i=1;i<3;i++)
     47     {
     48         for(j=1;j<3;j++)
     49         {
     50             if(b[i-1][j-1]<0)
     51             {
     52                 if(b[i-1][j]>=0&&b[i][j-1]>=0)
     53                 {
     54                     if(b[i][j-1]>=b[i-1][j])
     55                     {
     56                         b[i][j]=b[i][j-1]+a[i][j];
     57                     }
     58                     else
     59                     {
     60                         b[i][j]=b[i-1][j]+a[i][j];
     61                     }
     62                 }
     63                 else if(b[i-1][j]>=0&&b[i][j-1]<=0)
     64                 {
     65                     b[i][j]=b[i-1][j]+a[i][j];
     66                 }
     67                 else if(b[i-1][j]<=0&&b[i][j-1]>=0)
     68                 {
     69                     b[i][j]=b[i][j-1]+a[i][j];
     70                 }
     71                 else
     72                 {
     73                     b[i][j]=a[i][j];
     74                 }
     75             }
     76             else
     77             {
     78                 if(b[i-1][j]>=0&&b[i][j-1]>=0)
     79                 {
     80                     b[i][j]=a[i][j]+b[i-1][j]+b[i][j-1]-b[i-1][j-1];
     81                 }
     82                 else if(b[i-1][j]>=0&&b[i][j-1]<=0)
     83                 {
     84                     b[i][j]=a[i][j]+b[i-1][j]-b[i-1][j-1];
     85                 }
     86                 else if(b[i-1][j]<=0&&b[i][j-1]>=0)
     87                 {
     88                     b[i][j]=a[i][j]+b[i][j-1]-b[i-1][j-1];
     89                 }
     90                 else
     91                 {
     92                     b[i][j]=a[i][j];
     93                 }
     94             }
     95         }
     96     }
     97     for(i=0;i<3;i++)
     98     {
     99         for(j=0;j<3;j++)
    100         {
    101             if(b[i][j]>max)
    102                 max=b[i][j];
    103         }
    104     }
    105     cout<<"最大子数组的和为:"<<max<<endl;
    106     return 0;      
    107 }

    三、运行截图

    四、照片

    五、感想

         本次设计让我更加深刻的认识到了团队的力量,我们算法确定以后,在编程的时候遇到了难题可以通过讨论将代码实现,比如说我们在循环计算的时候,对如何实现所有的可能性进行了讨论等。

  • 相关阅读:
    2018-2019-2 20165235 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
    2018-2019 20165235 网络对抗 Exp5 MSF基础
    2018-2019 20165235 网络对抗 Exp4 恶意代码分析
    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
    2018-2019-2 20165235《网络对抗技术》Exp2 后门原理与实践
    Exp1 PC平台逆向破解 20165235 祁瑛
    2018-2019 20165235 网络对抗技术 Exp0:kali的安装
    20165302 Exp9 Web安全基础
    20165302 Exp 8 Web基础
    2018-2019-2 20165302 Exp7 网络欺诈防范
  • 原文地址:https://www.cnblogs.com/cuipengbo/p/4357695.html
Copyright © 2011-2022 走看看