第二次结对开发

一.开发思路

    先设计一个3行4列的矩阵。

    然后将12行的每一列相加作为第4行。

    将23行的每一列相加作为第5行。

    将123行的每一列作为第六行。

    然后列出每一行的子数组求出最大值。

    最后比较每一行的最大值的大小,求出最终结果。

  小组成员:付东,岳竞一

    付东负责实验代码的编写,岳竞一负责纠错测试,共同讨论实验思路。

二.开发代码

#include<iostream.h>
int main()
{
  int x,y,n,m;
  int s[10][20];
  // int a[10][20];
  int sum[10][20];
  cout<<"请输入3行4列的矩阵:"<<endl;
  int a[][4]={10,-6,-1,3,-7,20,3,7,-2,4,2,-19} ;
  for(x=0;x<3;x++)
  {
    for(y=0;y<4;y++)
    {
      cout<<a[x][y]<<"\t";
    }
    cout<<endl;
  }

//---------------------------以上是数组的输入

for(y=0;y<4;y++)
{
  for(x=0;x<3;x++)
  {
  s[x][y]=a[x][y];
  }
}


for(x=0;x<2;x++)
{
  for(y=0;y<4;y++)
  {
  s[x+3][y]=a[x][y]+a[x+1][y];
  }
}

for(y=0;y<4;y++)
  {
    s[5][y]=a[0][y]+a[1][y]+a[2][y];
  }


//---------------------------------------------------


for(x=0;x<6;x++)
{
  for(y=0;y<4;y++)
  {
    sum[x][y]=s[x][y];
  }
  for(y=0;y<3;y++)
  {
    sum[x][y+4]=s[x][y]+s[x][y+1];
  }
  for(y=0;y<2;y++)
  {
    sum[x][y+7]=s[x][y]+s[x][y+1]+s[x][y+2];
  }
  for(y=0;y<1;y++)
  {
    sum[x][y+9]=s[x][y]+s[x][y+1]+s[x][y+2]+s[x][y+3];
  }
}

//-------------------------------------------------------------------------
/*
for(x=0;x<6;x++)
{
  for(y=0;y<10;y++)
  {


    if(sum[x][y]==30)
    cout<<x<<endl<<y<<endl;
  }

}
*/
//-----------------------------
int max=sum[0][0];

for(x=0;x<6;x++)
{
  for(y=0;y<10;y++)
  {
    if(sum[x][y]>max)
    {
      max=sum[x][y];
      n=x;
      m=y;

    }
  }

}
//--------------------------------------求最大数


if(n<3)
{
  cout<<"数组开始行:"<<n+1<<endl<<"数组结束行:"<<n+1<<endl;
}
else
{
  n=n%3;
  switch(0)
  {
    case 0:cout<<"数组开始行:"<<n<<endl<<"数组结束行:"<<n+1<<endl;break;
    case 1:cout<<"数组开始行:"<<n<<endl<<"数组结束行:"<<n+1<<endl;break;
    case 2:cout<<"数组开始行:"<<n<<endl<<"数组结束行:"<<n+2<<endl;break;

  }
}

//-----------------------------------------------------------------------------求子数组开始的行
if(m<4)
{
  cout<<"数组开始列:"<<m<<endl<<"数组开始列:"<<m<<endl;
}
else if(m>3&&m<8)
{
  {
    m=m%4;
    switch(m)
    {
      case 0:cout<<"数组开始列:1"<<endl<<"数组结束列:2"<<endl;break;
      case 1:cout<<"数组开始列:2"<<endl<<"数组结束列:3"<<endl;break;
      case 2:cout<<"数组开始列:3"<<endl<<"数组结束列:4"<<endl;break;
      case 3:cout<<"数组开始列:1"<<endl<<"数组结束列:3"<<endl;break;



    }
  }
}
else if(m>7)
{
  m=m%8;
  switch(m)
  {
    case 0:cout<<"数组的开始行:2"<<endl<<"数组的结束列:4"<<endl;break;

    case 1:cout<<"数组的开始行:1"<<endl<<"数组的结束列:4"<<endl;break;
  }
}


cout<<"最大的子数组和为:max="<<max<<endl;

return 0;

}

三.开发结果截图

                       

四、结对的总结

    感觉老师说的很对,不能依靠别人,或者说让别人带着把,我的编程能力不如另一个伙伴,这样显然是不行的,还是得自己多编多练,不能在编程的过程中只给想法,碰到问题却不能回答些技术型的问题。

五、好基友

posted @ 2015-03-22 12:34  阳光少年郎  阅读(91)  评论(1编辑  收藏  举报